【发布时间】:2018-01-09 06:00:52
【问题描述】:
我无法理解Hackerrank这个问题的解决逻辑,https://www.hackerrank.com/challenges/crush/problem
在讨论部分,许多人也发布了他们的解决方案,但我无法理解为什么这种逻辑有效。
以下解决方案取自同一问题的讨论部分,并且拥有最多的赞成票,
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
long int N,K,p,q,sum,i,j,max=0,x=0;
cin>>N>>K;
long int *a=new long int[N+1]();
for(i=0;i<K;i++)
{
cin>>p>>q>>sum;
a[p]+=sum;
if((q+1)<=N) a[q+1]-=sum;
}
for(i=1;i<=N;i++)
{
x=x+a[i];
if(max<x) max=x;
}
cout<<max;
return 0;
}
有人可以解释一下背后的逻辑吗? 非常感谢您的帮助。
【问题讨论】:
-
问题是“为什么评价这么高?”。我们可以简单地猜测,评估者不会对有问题的代码(例如
using namespace std;)给予任何惩罚。