Submission #232324

# Submission time Handle Problem Language Result Execution time Memory
232324 2020-05-16T17:37:13 Z ksun48 Railway Trip (JOI17_railway_trip) C++14
Compilation error
0 ms 0 KB
clude <bits/stdc++.h>
using namespace std;
typedef long long LL;
 
int next[2][100000][101]; // next stop of level <= j, you are <= j+1 (taking trains of j+1)
int idx[100000][101];
int main(){
	cin.sync_with_stdio(0); cin.tie(0);
	//int next[2][1000][20]; // next stop of level <= j, you are <= j+1 (taking trains of j+1)
	//int idx[1000][21];
	int n, k, q;
	cin >> n >> k >> q;
	vector<int> level(n);
	for(int i = 0; i < n; i++){
		cin >> level[i];
		level[i] = k - level[i];
	}
	vector<pair<int,int> > queries;
	for(int i = 0; i < q; i++){
		int a, b;
		cin >> a >> b;
		a--; b--;
		queries.push_back({a,b});
	}
	for(int j = 0; j <= k; j++){
		int cur = 0;
		for(int i = 0; i < n; i++){
			if(level[i] <= j){
				idx[i][j] = cur;
				cur++;
			}
		}
	}
	for(int j = 0; j < k; j++){
		int prev = 0;
		for(int i = 0; i < n; i++){
			if(level[i] > j+1) continue;
			if(level[i] <= j){
				prev = i;
			}
			next[0][i][j] = prev;
		}
		prev = n-1;
		for(int i = n-1; i >= 0; i--){
			if(level[i] > j+1) continue;
			if(level[i] <= j){
				prev = i;
			}
			next[1][i][j] = prev;
		}
	}
	for(int zz = 0; zz < queries.size(); zz++){
		pair<int,int> stuff[2][2]; // person, then side
		stuff[0][0] = stuff[0][1] = {queries[zz].first, 0};
		stuff[1][0] = stuff[1][1] = {queries[zz].second, 0};
		int ans = 1000000000;
		for(int j = k-1; j >= 0; j--){
			// go to level j
			for(int p = 0; p < 2; p++){
				pair<int,int> newstuff[2];
				newstuff[0] = make_pair(next[0][stuff[p][0].first ][j], 1000000000);
				newstuff[1] = make_pair(next[1][stuff[p][1].first ][j], 1000000000);
				for(int i = 0; i < 2; i++){
					pair<int,int> x = stuff[p][i];
					// go left from x, go right from x;
					int loc = x.first;
					int dist = x.second;
					for(int dir = 0; dir < 2; dir++){
						int newloc = next[dir][loc][j];
						int newdist = dist + abs(idx[ loc ][j+1] - idx[ newloc ][j+1]);
						for(int qq = 0; qq < 2; qq++){
							if(newstuff[qq].first == newloc){
								newstuff[qq].second = min(newstuff[qq].second, newdist);
							}
						}
					}
				}
				stuff[p][0] = newstuff[0];
				stuff[p][1] = newstuff[1];
			}
			// find ans
			for(int i0 = 0; i0 < 2; i0++){
				pair<int,int> x0 = stuff[0][i0];
				for(int i1 = 0; i1 < 2; i1++){
					pair<int,int> x1 = stuff[1][i1];
					ans = min(ans, x0.second + x1.second + abs(idx[x0.first][j] - idx[x1.first][j]));
				}
			}
		}
		cout << ans - 1 << '\n';
	}
}

Compilation message

railway_trip.cpp:1:1: error: 'clude' does not name a type
 clude <bits/stdc++.h>
 ^~~~~
railway_trip.cpp: In function 'int main()':
railway_trip.cpp:8:2: error: 'cin' was not declared in this scope
  cin.sync_with_stdio(0); cin.tie(0);
  ^~~
railway_trip.cpp:8:2: note: suggested alternative: 'main'
  cin.sync_with_stdio(0); cin.tie(0);
  ^~~
  main
railway_trip.cpp:13:2: error: 'vector' was not declared in this scope
  vector<int> level(n);
  ^~~~~~
railway_trip.cpp:13:9: error: expected primary-expression before 'int'
  vector<int> level(n);
         ^~~
railway_trip.cpp:15:10: error: 'level' was not declared in this scope
   cin >> level[i];
          ^~~~~
railway_trip.cpp:18:9: error: 'pair' was not declared in this scope
  vector<pair<int,int> > queries;
         ^~~~
railway_trip.cpp:18:9: note: suggested alternative: 'main'
  vector<pair<int,int> > queries;
         ^~~~
         main
railway_trip.cpp:18:14: error: expected primary-expression before 'int'
  vector<pair<int,int> > queries;
              ^~~
railway_trip.cpp:23:3: error: 'queries' was not declared in this scope
   queries.push_back({a,b});
   ^~~~~~~
railway_trip.cpp:28:7: error: 'level' was not declared in this scope
    if(level[i] <= j){
       ^~~~~
railway_trip.cpp:37:7: error: 'level' was not declared in this scope
    if(level[i] > j+1) continue;
       ^~~~~
railway_trip.cpp:38:7: error: 'level' was not declared in this scope
    if(level[i] <= j){
       ^~~~~
railway_trip.cpp:45:7: error: 'level' was not declared in this scope
    if(level[i] > j+1) continue;
       ^~~~~
railway_trip.cpp:46:7: error: 'level' was not declared in this scope
    if(level[i] <= j){
       ^~~~~
railway_trip.cpp:52:23: error: 'queries' was not declared in this scope
  for(int zz = 0; zz < queries.size(); zz++){
                       ^~~~~~~
railway_trip.cpp:53:8: error: expected primary-expression before 'int'
   pair<int,int> stuff[2][2]; // person, then side
        ^~~
railway_trip.cpp:54:3: error: 'stuff' was not declared in this scope
   stuff[0][0] = stuff[0][1] = {queries[zz].first, 0};
   ^~~~~
railway_trip.cpp:54:3: note: suggested alternative: 'struct'
   stuff[0][0] = stuff[0][1] = {queries[zz].first, 0};
   ^~~~~
   struct
railway_trip.cpp:60:10: error: expected primary-expression before 'int'
     pair<int,int> newstuff[2];
          ^~~
railway_trip.cpp:61:5: error: 'newstuff' was not declared in this scope
     newstuff[0] = make_pair(next[0][stuff[p][0].first ][j], 1000000000);
     ^~~~~~~~
railway_trip.cpp:61:19: error: 'make_pair' was not declared in this scope
     newstuff[0] = make_pair(next[0][stuff[p][0].first ][j], 1000000000);
                   ^~~~~~~~~
railway_trip.cpp:64:11: error: expected primary-expression before 'int'
      pair<int,int> x = stuff[p][i];
           ^~~
railway_trip.cpp:66:16: error: 'x' was not declared in this scope
      int loc = x.first;
                ^
railway_trip.cpp:70:28: error: 'abs' was not declared in this scope
       int newdist = dist + abs(idx[ loc ][j+1] - idx[ newloc ][j+1]);
                            ^~~
railway_trip.cpp:70:28: note: suggested alternative: 'ans'
       int newdist = dist + abs(idx[ loc ][j+1] - idx[ newloc ][j+1]);
                            ^~~
                            ans
railway_trip.cpp:73:31: error: 'min' was not declared in this scope
         newstuff[qq].second = min(newstuff[qq].second, newdist);
                               ^~~
railway_trip.cpp:73:31: note: suggested alternative: 'main'
         newstuff[qq].second = min(newstuff[qq].second, newdist);
                               ^~~
                               main
railway_trip.cpp:83:10: error: expected primary-expression before 'int'
     pair<int,int> x0 = stuff[0][i0];
          ^~~
railway_trip.cpp:85:11: error: expected primary-expression before 'int'
      pair<int,int> x1 = stuff[1][i1];
           ^~~
railway_trip.cpp:86:21: error: 'x0' was not declared in this scope
      ans = min(ans, x0.second + x1.second + abs(idx[x0.first][j] - idx[x1.first][j]));
                     ^~
railway_trip.cpp:86:21: note: suggested alternative: 'i0'
      ans = min(ans, x0.second + x1.second + abs(idx[x0.first][j] - idx[x1.first][j]));
                     ^~
                     i0
railway_trip.cpp:86:33: error: 'x1' was not declared in this scope
      ans = min(ans, x0.second + x1.second + abs(idx[x0.first][j] - idx[x1.first][j]));
                                 ^~
railway_trip.cpp:86:33: note: suggested alternative: 'i1'
      ans = min(ans, x0.second + x1.second + abs(idx[x0.first][j] - idx[x1.first][j]));
                                 ^~
                                 i1
railway_trip.cpp:86:45: error: 'abs' was not declared in this scope
      ans = min(ans, x0.second + x1.second + abs(idx[x0.first][j] - idx[x1.first][j]));
                                             ^~~
railway_trip.cpp:86:45: note: suggested alternative: 'ans'
      ans = min(ans, x0.second + x1.second + abs(idx[x0.first][j] - idx[x1.first][j]));
                                             ^~~
                                             ans
railway_trip.cpp:86:12: error: 'min' was not declared in this scope
      ans = min(ans, x0.second + x1.second + abs(idx[x0.first][j] - idx[x1.first][j]));
            ^~~
railway_trip.cpp:86:12: note: suggested alternative: 'main'
      ans = min(ans, x0.second + x1.second + abs(idx[x0.first][j] - idx[x1.first][j]));
            ^~~
            main
railway_trip.cpp:90:3: error: 'cout' was not declared in this scope
   cout << ans - 1 << '\n';
   ^~~~