Submission #1059916

#TimeUsernameProblemLanguageResultExecution timeMemory
1059916SzymonKrzywdaLottery (CEOI18_lot)C++17
25 / 100
2205 ms65536 KiB
#include <bits/stdc++.h> using namespace std; int main() { int n,l; cin >> n >> l; int tab[n]; int odp[(n-l+1)][l+1]; for (int i=0; i<n; i++){ cin >> tab[i]; } map<pair<int,int>,vector<int>> mapa; for (int i=0; i<(n-l+1); i++){ for (int j=0; j<l; j++){ if (mapa.find({j,tab[i+j]}) != mapa.end()){ mapa[{j,tab[i+j]}].push_back(i); } else{ mapa[{j,tab[i+j]}] = {i}; } } } for (int i=0; i<(n-l+1); i++){ int wyniki_2[n]; for (int s=0; s<n; s++) wyniki_2[s] = 0; for (int j=i; j<(i+l); j++){ for (int s : mapa[{j-i,tab[j]}]){ if (i==s) continue; //cout << i << " " << " " << tab[j] << " " << s << endl; wyniki_2[s]++; } } vector<int> wyniki(0); int maxi=0; for (int s=0; s<(n-l+1); s++){ if (i==s) continue; //cout << s << ": " << wyniki_2[s] << " "; wyniki.push_back(wyniki_2[s]); } //cout << endl; sort(wyniki.begin(),wyniki.end()); //for (auto x : wyniki) cout << x << " ";cout << endl; int ile=(n-l); int wsk=0; for (int x=l; x>=0; x--){ //if (wsk<(n-l)) cout << x << " " << ile << " " << wsk << " " << wyniki[wsk] << endl; odp[i][x] = ile; //cout << odp[i][x] << endl; while (wsk < (n-l) && l-wyniki[wsk]==x) {ile--; wsk++;} } } int q,k; cin >> q; for (int i=0; i<q; i++){ cin >> k; for (int j=0; j<(n-l+1); j++){ cout << odp[j][k]<< " "; } cout << endl; } return 0; }

Compilation message (stderr)

lot.cpp: In function 'int main()':
lot.cpp:46:13: warning: unused variable 'maxi' [-Wunused-variable]
   46 |         int maxi=0;
      |             ^~~~
#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...