# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
674346 | 2022-12-23T18:14:06 Z | Farhan_HY | Volontiranje (COCI21_volontiranje) | C++14 | 0 ms | 212 KB |
#include<bits/stdc++.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define T int t;cin >> t;while(t--) #define int long long #define F first #define S second using namespace std; const int mod = 1e9 + 7; const int N = 1002; int n, a[N], dp[N]; vector<vector<int>> ans; vector<int> v; int Rec(int i) { int &ret = dp[i]; if (ret != -1) return ret; ret = 0; for(int j = i + 1; j <= n; j++) { if (a[j] > a[i]) ret = max(ret, 1 + Rec(j)); } return ret; } main() { cin >> n; for(int i = 1; i <= n; i++) cin >> a[i]; memset(dp, -1, sizeof dp); int mx = 0; for(int i = 1; i <= n; i++) mx = max(mx, 1 + Rec(i)); for(int i = 1; i <= n; i++) { if (a[i] == 0) continue; if (Rec(i) + 1 == mx) { int cnt = mx - 1; v.clear(); v.push_back(i); for(int j = i + 1; j <= n; j++) if (a[j] > a[i] && Rec(j) + 1 == cnt) v.push_back(j), a[j] = 0, cnt--; if (v.size() == mx) ans.push_back(v); } } cout << mx << ' ' << ans.size() << '\n'; for(auto x: ans) { for(auto y: x) cout << y << ' '; cout << '\n'; } } // 1 2
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 212 KB | length of the longest increasing subsequence doesn't match |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 212 KB | length of the longest increasing subsequence doesn't match |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 212 KB | length of the longest increasing subsequence doesn't match |
2 | Halted | 0 ms | 0 KB | - |