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]);
                                      ^