HDOJ 2176 돌 쌓 기 게임
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2461 Accepted Submission(s): 1443
Problem Description
m. 돌 을 쌓 고 두 사람 이 돌아 가면 서 얻 습 니 다. 한 더미 에서 만 얻 을 수 있 습 니 다. 완 성 된 사람 이 이 길 수 있 습 니 다. 선 취 자 는 수출 No. 선 취 자 는 수출 Yes 를 이 긴 다음 에 수출 을 어떻게 합 니까? 예 를 들 어 5 더미 5, 7, 8, 9, 10 선 취 자 는 이 길 수 있 습 니 다. 선 취 자 는 첫 번 째 로 얻 을 때 8 개 있 는 더미 에서 7 개 를 가 져 가 고 나머지 1 개 를 가 져 갈 수도 있 습 니 다. 9 개 있 는 더미 에서 9 개 를 가 져 가 고 나머지 0 개 를 가 져 갈 수도 있 습 니 다. 10 개 있 는 더미 에서 7 개 를 가 져 가 고 3 개 를 남
Input
여러 그룹 을 입력 하 십시오. 각 그룹의 첫 번 째 줄 은 m, m < = 20000 입 니 다. 뒤의 m 개 비 0 정수 m = 0 으로 종료 합 니 다.
Output
선 취 자 마이너스 출력 No. 선 취 자가 출력 Yes 를 이 긴 다음 선 취 자의 첫 번 째 취 자 를 출력 하 는 모든 방법 입 니 다. 한 개의 돌 더미 에서 몇 개 를 취하 고 b 개 를 남 긴 후에 이기 면 a b 를 출력 합 니 다. Sample 출력 을 참조 하 십시오.
Sample Input
2
45 45
3
3 6 9
5
5 7 8 9 10
0
Sample Output
No
Yes
9 5
Yes
8 1
9 0
10 3
듣 자 하 니, cin 과 cout 는 시간 을 초과 할 수 있 고, 감히 사용 할 수 없 으 며, ac 후에 또 cin 과 cout 를 사용 하여 시간 을 초과 하지 않 는 다 는 것 을 발견 하 였 다.
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int m,a[200005],n;
while(cin >> m,m)
{
int sum=0;
for(int i=0;i<m;i++)
{
cin>>a[i];//scanf("%d",&a[i]);
sum^=a[i];
}
if(!sum)
{
cout<<"No"<<endl;
continue;
}
cout <<"Yes"<<endl;
int t;
for(int i=0;i<m;i++)
{
t=sum^a[i];
if(t<=a[i])
cout<<a[i]<<' '<<t<<endl;
}
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
원탁 문제 HDU 4841 PE...원탁 문제 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 466 Ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.