Submission #1023059

#TimeUsernameProblemLanguageResultExecution timeMemory
1023059vjudge1Prisoner Challenge (IOI22_prison)C++17
38 / 100
13 ms1764 KiB
#include <bits/stdc++.h>
using namespace std;

std::vector<std::vector<int>> devise_strategy(int N){
	vector<vector<int>> s(13 * 3, vector<int>(N + 1, 0));
	for(int x = 0; x < s.size(); x++){
		int k = 12 - x / 3;
		if(x % 3 == 0){
			s[x][0] = 0;
			for(int i = 1; i <= N; i++){
				s[x][i] = x + 1;
				if(i & (1<<k)) s[x][i]++;
			}
		} else{
			s[x][0] = 1;
			for(int i = 1; i <= N; i++){
				bool c = 0;
				if(i & (1<<k)) c = 1;
				if(k){
					if(x%3 - 1 > c) s[x][i] = -2;
					else if(x % 3 - 1 < c) s[x][i] = -1;
					else s[x][i] = (x / 3 + 1) * 3;
				} else{
					if(x%3 - 1 > c) s[x][i] = -2;
					else s[x][i] = -1;
				}
			}
		}
	}
	return s;
}

Compilation message (stderr)

prison.cpp: In function 'std::vector<std::vector<int> > devise_strategy(int)':
prison.cpp:6:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    6 |  for(int x = 0; x < s.size(); x++){
      |                 ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...