제출 #290815

#제출 시각아이디문제언어결과실행 시간메모리
290815gs14004CATS (NOI14_cats)C++17
12 / 25
1584 ms40056 KiB
#include <cstdio>
#include <cstring>
using lint = long long;

struct cat_stack{
	int stack[5000005], sz;
	int top(){
		if(sz == 0) return 0;
		return stack[sz-1];
	}
	void pop(){
		if(sz != 0) sz--;
	}
	void push(int x){
		stack[sz++] = x;
	}
}s1;

int main(){
	int q;
	scanf("%d",&q);
	while (q--) {
		lint x, l, n;
		scanf("%lld %lld %lld",&x,&l,&n);
		x--;
		if(l / (2 * n + 1) <= 61){
			lint Q = l / (2 * n) + 1;
			x %= (1ll << (Q + 1));
		}
		int s2 = 0;
		s1.sz = 0;
		int g = 0;
		while (x>=0) {
			s2 = s1.top() ^ g;
			s1.pop();
			g ^= 1;
			if(s2 > l){
				x--;
			//	printf("%d,", s2);
				if(x < 0){
					printf("%d\n",s2);
					break;
				}
			}
			else{
				s2 += 2*n;
				s1.push(s2^g);
				s1.push(s2^g);
			}
		}
	}
}

컴파일 시 표준 에러 (stderr) 메시지

cats.cpp: In function 'int main()':
cats.cpp:21:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   21 |  scanf("%d",&q);
      |  ~~~~~^~~~~~~~~
cats.cpp:24:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   24 |   scanf("%lld %lld %lld",&x,&l,&n);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...