Submission #1745678
Source Code Expand
#include <iostream> #include <vector> #include <utility> using namespace std; const int INF = 1000000000; //INFにっているのは右端か左端 int n, a[100005]; vector< pair<int,int> > distv; int main() { cin>>n; for(int i = 0; i< n; i++){ cin>>a[i]; a[i]--; } int ld=INF; bool flag = false; for(int i = 0; i< n; i++){ if(flag)ld++; if(a[i] == i){ if(distv.size() > 0) distv[distv.size()-1].second = ld; distv.push_back(make_pair(ld,-1)); ld = 0; flag = true; } } if(distv.size() > 0) distv[distv.size()-1].second = INF; int ans = 0; for(int i = 0; i < distv.size(); i++){ ans++; if(distv[i].second == 1){ i++; } } cout<<ans<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Derangement |
User | prog470 |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 745 Byte |
Status | AC |
Exec Time | 38 ms |
Memory | 1784 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt |
All | 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_000.txt | AC | 1 ms | 256 KB |
0_001.txt | AC | 1 ms | 256 KB |
0_002.txt | AC | 1 ms | 256 KB |
0_003.txt | AC | 1 ms | 256 KB |
1_004.txt | AC | 1 ms | 256 KB |
1_005.txt | AC | 38 ms | 1784 KB |
1_006.txt | AC | 37 ms | 1276 KB |
1_007.txt | AC | 36 ms | 768 KB |
1_008.txt | AC | 37 ms | 1784 KB |
1_009.txt | AC | 36 ms | 1276 KB |
1_010.txt | AC | 36 ms | 640 KB |
1_011.txt | AC | 38 ms | 1784 KB |
1_012.txt | AC | 38 ms | 1784 KB |
1_013.txt | AC | 37 ms | 1276 KB |
1_014.txt | AC | 36 ms | 640 KB |