# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
132645 | 2019-07-19T09:24:52 Z | Vardanyan | Teams (CEOI11_tea) | C++14 | 2500 ms | 73328 KB |
#include <bits/stdc++.h> using namespace std; const int N = 1000*1000+5; pair<int,int> a[N]; int dp[5005][5005]; int main(){ ios_base::sync_with_stdio(false); int n; cin>>n; for(int i = 1;i<=n;i++){ cin>>a[i].first; // a[i].first = rand()%6+1; a[i].second = i; } sort(a+1,a+1+n); /*int mx = 0; for(int i = n;i>=1;i--){ mx = max(mx,a[i].first); if((n-i+1)>=mx){ dp[i][1] = n-i+1; } } int anss = 1; for(int k = 2;k<=n;k++){ for(int i = n;i>=1;i--){ int mx = 0; for(int j = i;j<=n;j++){ mx = max(mx,a[j].first); if(dp[j+1][k-1] && (j-i+1)>=mx){ // dp[i][k] = 1; if(dp[i][k] == 0 || dp[i][k]>max(dp[j+1][k-1],j-i+1)){ dp[i][k] = max(dp[j+1][k-1],j-i+1); } break; } } } if(!dp[1][k]) break; anss = k; }*/ // cout<<anss<<" "<<dp[1][anss]<<endl; vector<vector<int> > ans; vector<int> now; int lim = n+1; for(int i = n;i>=1;i--){ /* if(i == 2){ cout<<0<<endl; }*/ if(i>=lim){ now.push_back(a[i].second); continue; } if(now.size()) ans.push_back(now); now.clear(); // lim = i-a[i].first+1; if(i-a[i].first+1<=0){ // now.push_back(a[i].second); int id = 0; for(int j = 0;j<ans.size();j++){ if(ans[id].size()>ans[j].size()) id = j; } ans[id].push_back(a[i].second); continue; } // if(now.size()) ans.push_back(now); // now.clear(); lim = i-a[i].first+1; now.push_back(a[i].second); } if(now.size()) ans.push_back(now); // if(anss!=ans.size()) assert(0); cout<<ans.size()<<endl; int mxx = 0; long long al = 0; for(int i = 0;i<ans.size();i++){ mxx = max(mxx,(int)ans[i].size()); cout<<ans[i].size()<<" "; al+=ans[i].size(); for(int j = 0;j<ans[i].size();j++) cout<<ans[i][j]<<" "; cout<<endl; } // cout<<mxx<<endl; // cout<<al<<endl; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 376 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 376 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 504 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 504 KB | Output is correct |
2 | Correct | 3 ms | 504 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 27 ms | 2552 KB | Output is correct |
2 | Correct | 27 ms | 2040 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 30 ms | 2808 KB | Output is correct |
2 | Correct | 34 ms | 2168 KB | Output is correct |
3 | Correct | 29 ms | 2624 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 233 ms | 17528 KB | Output is correct |
2 | Correct | 271 ms | 17332 KB | Output is correct |
3 | Correct | 251 ms | 20168 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 323 ms | 22120 KB | Output is correct |
2 | Execution timed out | 2529 ms | 73328 KB | Time limit exceeded |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 350 ms | 23472 KB | Output is correct |
2 | Correct | 262 ms | 31016 KB | Output is correct |
3 | Correct | 301 ms | 23160 KB | Output is correct |
4 | Correct | 338 ms | 25328 KB | Output is correct |