codeforces Money Transfers

来源:互联网 发布:java spring 切面编程 编辑:程序博客网 时间:2024/05/16 05:43

深感实现能力太差

开始想的是找最长的0连续长度,发现有问题,比如5 -5 5 -5 5 -5这个case

然后发现找可以构成0的段最多可以构成的段

不过发现我实现不了,不知道怎么找,2333

最后发现正解就是这样的,而且找的很简单

代码如下:

/*  ^^ ====== ^^ ID: meixiuxiuPROG: testLANG: C++11*/#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>#include <cstring>#include <climits>#include <string>#include <vector>#include <cmath>#include <stack>#include <queue>#include <set>#include <map>#include <sstream>#include <cctype>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair<int ,int> pii;#define MEM(a,b) memset(a,b,sizeof a)#define CLR(a) memset(a,0,sizeof a);#define pi acos(-1.0)#define maxn 40000#define maxv 100005const int inf = 0x3f3f3f3f;const int MOD = 1e9 + 7;//#define LOCALmap<ll,ll> mp;int main(){#ifdef LOCALfreopen("in.txt", "r", stdin);//freopen("out.txt","w",stdout);#endif    int n;cin >> n;    ll sum = 0;    ll cnt = 0;    for(int i=1;i<=n;i++){        int a;scanf("%d",&a);        sum += a;        mp[sum]++;        cnt = max(cnt,mp[sum]);    }    cout << n-cnt << endl;return 0;}


0 0
原创粉丝点击