Submission #981360

# Submission time Handle Problem Language Result Execution time Memory
981360 2024-05-13T05:36:06 Z pcc Land of the Rainbow Gold (APIO17_rainbow) C++17
0 / 100
6 ms 7004 KB
#include "rainbow.h"
#include <bits/stdc++.h>
using namespace std;

#define pii pair<int,int>
#define fs first
#define sc second

const int mxn = 2e5+10;

int arr[3][mxn];
int pref[mxn];
int row[3][mxn];

void init(int R, int C, int sr, int sc, int M, char *S) {
	memset(arr,0,sizeof(arr));
	pii now = pii(sr,sc);
	if(M)arr[now.fs][now.sc] = -1;
	for(int i = 0;i<M;i++){
		if(S[i] == 'N')now.fs--;
		else if(S[i] == 'S')now.fs++;
		else if(S[i] == 'E')now.sc++;
		else if(S[i] == 'W')now.sc--;
		arr[now.fs][now.sc] = -1;
	}
	for(int i = 1;i<=R;i++){
		for(int j = 1;j<=C;j++)cerr<<setw(2)<<arr[i][j]<<' ';cerr<<endl;
	}cerr<<endl;

	for(int i = 1;i<=C;i++){
		pref[i] = pref[i-1];
		row[1][i] = row[1][i-1];
		row[2][i] = row[2][i-1];
		if(arr[1][i] == -1&&arr[1][i-1] != -1)row[1][i]++;
		if(arr[2][i] == -1&&arr[2][i-1] != -1)row[2][i]++;
		if(arr[1][i] == arr[2][i]&&arr[1][i] == -1&&(arr[1][i-1] != -1||arr[2][i-1] != -1))pref[i]++;
	}
	for(int i = 1;i<=C;i++)cerr<<pref[i]<<' ';cerr<<endl;
	return;
}

int colour(int ar, int ac, int br, int bc) {
	if(ar == br){
		int cnt = row[ar][bc]-row[ar][ac-1]-1;
		if(arr[ar][ac] != -1)cnt++;
		if(arr[br][bc] != -1)cnt++;
		cnt = max(0,cnt);
		return cnt;
	}
	else{
		int cnt = pref[bc]-pref[ac-1]-1;
		if(arr[1][ac] != -1||arr[2][ac] != -1)cnt++;
		if(arr[1][bc] != -1||arr[2][bc] != -1)cnt++;
		cnt = max(0,cnt);
		return cnt;
	}
}

Compilation message

rainbow.cpp: In function 'void init(int, int, int, int, int, char*)':
rainbow.cpp:27:3: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   27 |   for(int j = 1;j<=C;j++)cerr<<setw(2)<<arr[i][j]<<' ';cerr<<endl;
      |   ^~~
rainbow.cpp:27:56: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   27 |   for(int j = 1;j<=C;j++)cerr<<setw(2)<<arr[i][j]<<' ';cerr<<endl;
      |                                                        ^~~~
rainbow.cpp:38:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   38 |  for(int i = 1;i<=C;i++)cerr<<pref[i]<<' ';cerr<<endl;
      |  ^~~
rainbow.cpp:38:44: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   38 |  for(int i = 1;i<=C;i++)cerr<<pref[i]<<' ';cerr<<endl;
      |                                            ^~~~
# Verdict Execution time Memory Grader output
1 Runtime error 6 ms 7004 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 3516 KB Output is correct
2 Incorrect 1 ms 3676 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 3676 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 6 ms 7004 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 6 ms 7004 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -