Submission #634000

#TimeUsernameProblemLanguageResultExecution timeMemory
634000drkarlicio2107Gift (IZhO18_nicegift)C++14
30 / 100
85 ms16208 KiB
#include <bits/stdc++.h> using namespace std; vector < pair <long long int, pair<int, int> > > s; set <int> m; long long int a [100010]; vector <int> ans [300010]; int main(){ long long int n, k; cin >> n >> k; long long int gr=0; long long int sum=0; for (int i=0; i<n; i++){ long long int x; cin >> x; a[i]=x; sum+=a[i]; } for (int i=0; i<n; i++){ long long int x=a[i]; s.push_back ({(gr)%(sum/k), {i, 0}}); gr+=x; //cout << gr << endl; if (gr%(sum/k)==0) s.push_back ({sum/k, {i, 1}}); else s.push_back ({(gr)%(sum/k), {i, 1}}); if ((gr-x)%(sum/k)>gr%(sum/k) && gr%(sum/k)!=0){ s.push_back ({0, {i, 0}}); s.push_back ({sum/k, {i, 1}}); } } if (gr%k!=0){ cout << -1; return 0; } int ind=0; for (int i=0; i<n; i++) if (a[i]>gr/k) {cout << -1; return 0;}; sort (s.begin(), s.end()); int pr=0; for (int i=0; i<s.size(); i++){ int x=s [i].first; int y=s[i].second.first; int t=s[i].second.second; //cout << x << " " << y << " " << t << endl; if (t==0){ if (x-pr!=0){ ans [ind].push_back (x-pr); for (auto e:m){ ans [ind].push_back (e+1); } ind++; } m.insert (y); } else{ if (x-pr!=0){ ans [ind].push_back (x-pr); for (auto e:m){ ans [ind].push_back (e+1); } ind++; } m.erase (y); } pr=x; } cout << ind << endl; for (int i=0; i<ind; i++){ for (int j=0; j<ans [i].size(); j++) cout << ans [i][j] << " "; cout << endl; } return 0; }

Compilation message (stderr)

nicegift.cpp: In function 'int main()':
nicegift.cpp:29:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, std::pair<int, int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |  for (int i=0; i<s.size(); i++){
      |                ~^~~~~~~~~
nicegift.cpp:56:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |   for (int j=0; j<ans [i].size(); j++) cout << ans [i][j] << " ";
      |                 ~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...