Submission #655594
Source Code Expand
#include<iostream> #include<map> #include<vector> #include<algorithm> #include<cmath> #include<iomanip> #include<numeric> #include<climits> #include<ctime> #include<cstring> #include<sstream> #define REP(i,p,n) for(int i=p;i<(int)(n);i++) #define rep(i,n) REP(i,0,n) #define rep_split(tok,a_str,re) for(char *tok = strtok((char *)a_str.c_str(),re); tok != NULL; tok = strtok(NULL,re)) #define ALL(c) (c).begin(), (c).end() #define dump(a) cerr << #a << "=" << (a) << endl #define DUMP(list) cout << "{ "; for(auto nth : list){ cout << nth << " "; } cout << "}" << endl; template<class T> void chmin(T &t, T f) { if (t > f) t = f; } //t=min template<class T> void chmax(T &t, T f) { if (t < f) t = f; } //t=max using namespace std; int main() { int N,M,D; int index; vector<int> A; vector<int> to; cin >> N >> M >> D; int doubling[N+1][31]; rep(i,M) { cin >> index; A.push_back(index); } reverse(ALL(A)); // Why? rep(i,N+1) { //0 ~ N to.push_back(i); } for(int i = 1; i <= N; ++i) doubling[ i ][ 0 ] = i; //阿弥陀のシュミレーション rep(i,M) { swap(doubling[A[i]][0],to[A[i]+1][0]); } REP(k,1,30) { //2^1 ~ 2^30 REP(i,1,N+1) { int f = doubling[ i ][ k - 1 ]; doubling[i][k] = doubling[f][k-1]; } } //ダブリング:工程2 REP(i,1,N+1) { int next = i; int DD = D; rep(k,30+1) { if (DD & 1) { next = doubling[next][k]; } DD = DD >> 1; } cout << next << endl; } return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 阿弥陀 |
User | Ow1 |
Language | C++11 (GCC 4.8.1) |
Score | 0 |
Code Size | 1559 Byte |
Status | CE |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:47:38: error: invalid types ‘__gnu_cxx::__alloc_traits<std::allocator<int> >::value_type {aka int}[int]’ for array subscript swap(doubling[A[i]][0],to[A[i]+1][0]); ^