답안 #209218

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
209218 2020-03-13T12:37:42 Z mieszko11b 가로등 (APIO19_street_lamps) C++14
40 / 100
208 ms 6136 KB
#include <bits/stdc++.h>

using namespace std;

int n, q;
char c[107][107];
int before[300007], last0[300007];
char cc[300007];
int a[300007], b[300007];

int main() {
	scanf("%d%d", &n, &q);
	if(n <= 100 && q <= 100) {
		scanf(" %s", c[0] + 1);
		for(int i = 1 ; i <= q ; i++) {
			char comm[10];
			
			for(int j = 1 ; j <= n ; j++)	
				c[i][j] = c[i - 1][j];
			
			scanf(" %s", comm);
			if(comm[0] == 'q') {
				int a, b;
				scanf("%d%d", &a, &b);
				int res = 0;
				for(int j = 0 ; j < i ; j++) {
					bool ok = true;
					for(int k = a ; k < b ; k++)
						if(c[j][k] == '0')
							ok = false;
					if(ok) res++;
				}
				printf("%d\n", res);
			} else {
				int w;
				scanf("%d", &w);
				
				if(c[i][w] == '0') c[i][w] = '1';
				else c[i][w] = '0';
			}
		}
		return 0;
	}
	
	scanf(" %s", cc + 1);
	
	bool kosno = true;
	
	for(int i = 1 ; i <= q ; i++) {
		char comm[10];
		scanf(" %s", comm);
		if(comm[0] == 'q') {
			int a, b;
			scanf("%d%d", &a, &b);
			::a[i] = a;
			::b[i] = b;
			if(b != a + 1)
				kosno = false;
		} else {
			int w;
			scanf("%d", &w);
			::a[i] = -1;
			::b[i] = w;
		}				
	}
	
	if(kosno) {
		memset(last0, -1, sizeof last0);
		
		for(int i = 1 ; i <= q ; i++) {
			if(a[i] != -1) {
				int a = ::a[i];
				int b = ::b[i];
				int res = before[a];
				if(cc[a] == '1')
					res += i - last0[a] - 1;
				printf("%d\n", res);
			} else {
				int w = b[i];
				if(cc[w] == '1') {
					before[w] += i - last0[w] - 1;
					cc[w] = '0';
				} else {
					last0[w] = i - 1;
					cc[w] = '1';
				}
			}
		}
		return 0;
	}
	
	return 0;
}

Compilation message

street_lamps.cpp: In function 'int main()':
street_lamps.cpp:73:9: warning: unused variable 'b' [-Wunused-variable]
     int b = ::b[i];
         ^
street_lamps.cpp:12:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &n, &q);
  ~~~~~^~~~~~~~~~~~~~~~
street_lamps.cpp:14:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf(" %s", c[0] + 1);
   ~~~~~^~~~~~~~~~~~~~~~~
street_lamps.cpp:21:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf(" %s", comm);
    ~~~~~^~~~~~~~~~~~~
street_lamps.cpp:24:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &a, &b);
     ~~~~~^~~~~~~~~~~~~~~~
street_lamps.cpp:36:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &w);
     ~~~~~^~~~~~~~~~
street_lamps.cpp:45:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf(" %s", cc + 1);
  ~~~~~^~~~~~~~~~~~~~~
street_lamps.cpp:51:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf(" %s", comm);
   ~~~~~^~~~~~~~~~~~~
street_lamps.cpp:54:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d%d", &a, &b);
    ~~~~~^~~~~~~~~~~~~~~~
street_lamps.cpp:61:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d", &w);
    ~~~~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 376 KB Output is correct
2 Correct 5 ms 376 KB Output is correct
3 Correct 5 ms 376 KB Output is correct
4 Correct 5 ms 380 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 5 ms 284 KB Output is correct
7 Correct 6 ms 376 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 109 ms 4856 KB Output is correct
2 Correct 115 ms 4772 KB Output is correct
3 Correct 123 ms 4812 KB Output is correct
4 Correct 150 ms 6008 KB Output is correct
5 Correct 144 ms 5112 KB Output is correct
6 Correct 141 ms 5984 KB Output is correct
7 Correct 153 ms 4796 KB Output is correct
8 Correct 208 ms 6136 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 376 KB Output is correct
2 Correct 5 ms 376 KB Output is correct
3 Correct 5 ms 376 KB Output is correct
4 Correct 5 ms 380 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 5 ms 284 KB Output is correct
7 Correct 6 ms 376 KB Output is correct
8 Correct 109 ms 4856 KB Output is correct
9 Correct 115 ms 4772 KB Output is correct
10 Correct 123 ms 4812 KB Output is correct
11 Correct 150 ms 6008 KB Output is correct
12 Correct 144 ms 5112 KB Output is correct
13 Correct 141 ms 5984 KB Output is correct
14 Correct 153 ms 4796 KB Output is correct
15 Correct 208 ms 6136 KB Output is correct
16 Incorrect 5 ms 376 KB Output isn't correct
17 Halted 0 ms 0 KB -