Pagini recente »
Monitorul de evaluare
|
Borderou de evaluare (job #366971)
|
luca
|
Monitorul de evaluare
|
Cod sursă (job #643232)
Cod sursă (job
#643232)
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define dbg(x) cout << #x <<": " << x << "\n";
using ll = long long;
const string fn = "file";
ifstream fin(fn + ".in");
ofstream fout(fn + ".out");
int n;
int a[100005], b[100005], sp[100005];
map<int, int> mp;
int main() {
fin >> n;
for (int i = 1; i <= n; ++i)
fin >> a[i], b[i] = a[i];
// sort(b + 1, b + n + 1);
// for (int i = 1; i <= n; ++i)
// if (mp[b[i]] == 0)
// mp[b[i]] = i;
// for (int i = 1; i <= n; ++i)
// a[i] = mp[a[i]];
mp[0]++;
for (int i = 1; i <= n; ++i) {
sp[i] += a[i] + sp[i - 1];
mp[sp[i]]++;
}
for (int i = 1; i <= n; ++i)
fout << sp[i] << " ";
fout << '\n';
int ans = 0;
//cout << mp[0] << " ";
for (int i = 0; i < n; ++i) {
ans += mp[sp[i]] - 1;
cout << mp[sp[i]] << " ";
fout << ans << ' ';
mp[sp[i]] -= 2;
}
return 0;
}