Submission #224770

#TimeUsernameProblemLanguageResultExecution timeMemory
224770MKopchevTeams (CEOI11_tea)C++14
0 / 100
375 ms37500 KiB
#include<bits/stdc++.h> using namespace std; const int nmax=1e6+42; int n; pair<int/*low*/,int/*id*/> inp[nmax]; pair<int/*max*/,int/*id*/> pref_max[nmax]; int dp[nmax]; int parent[nmax]; int main() { scanf("%i",&n); for(int i=1;i<=n;i++) { scanf("%i",&inp[i].first); inp[i].second=i; } sort(inp+1,inp+n+1); pref_max[0]={0,0}; dp[0]=0; for(int i=1;i<=n;i++) { dp[i]=-1; parent[i]=-1; if(i-inp[i].first>=0) { parent[i]=pref_max[i-inp[i].first].second; dp[i]=pref_max[i-inp[i].first].first+1; } pref_max[i]=max(pref_max[i-1],make_pair(dp[i],i)); } printf("%i\n",dp[n]); int pos=n; for(int i=dp[n];i>=1;i--) { printf("%i",pos-parent[pos]); for(int j=parent[pos]+1;j<=pos;j++) { printf(" %i",inp[j].second); } printf("\n"); pos=parent[pos]; } return 0; }

Compilation message (stderr)

tea.cpp: In function 'int main()':
tea.cpp:15:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i",&n);
     ~~~~~^~~~~~~~~
tea.cpp:18:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%i",&inp[i].first);
         ~~~~~^~~~~~~~~~~~~~~~~~~~
#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...
#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...