| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
水一个!//============================================================================
// Name : main1082.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
using namespace std;
int NofD[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int nextRi, nextYue, nextNian;
int lastRi, lastYue, lastNian;
bool isDate(int nian, int yue, int ri){
if(yue != 2 || (nian%4 != 0 || (nian%100 == 0 && nian%400 != 0))){
return ri <= NofD[yue];
}
else{
return ri <= 29;
}
}
int nofD(int nian, int yue){
if(yue != 2 || (nian%4 != 0 || (nian%100 == 0 && nian%400 != 0))){
return NofD[yue];
}
return 29;
}
void getNext(int nian, int yue, int ri){
ri++;
if(ri > nofD(nian, yue)){
ri -= nofD(nian, yue);
yue++;
}
if(yue == 13){
yue = 1;
nian++;
}
nextRi = ri;
nextYue = yue;
nextNian = nian;
}
void getLast(int nian, int yue, int ri){
ri--;
if(ri == 0){
yue--;
if(yue == 0){
yue = 12;
nian--;
}
ri = nofD(nian, yue);
}
lastRi = ri;
lastYue = yue;
lastNian = nian;
}
void printLast(){
cout << lastNian << " " << lastYue << " " << lastRi << endl;
}
void printNext(){
cout << nextNian << " " << nextYue << " " << nextRi << endl;
}
int main() {
bool state[102][13][32];
state[101][11][4] = false;
for(int i = 5; i <= 30; i++) state[101][11][i] = true;
for(int i = 1; i <= 31; i++) state[101][12][i] = true;
int nian = 2001, yue = 11, ri = 3;
while(nian >= 1900){
getNext(nian, yue, ri);
if(!state[nextNian-1900][nextYue][nextRi]){
state[nian-1900][yue][ri] = true;
}
else{
int tempYue = yue+1;
int tempNian = nian;
if(tempYue == 13){
tempYue = 1;
tempNian++;
}
if(!isDate(tempNian, tempYue, ri)){
state[nian-1900][yue][ri] = false;
}
else{
state[nian-1900][yue][ri] = !state[tempNian-1900][tempYue][ri];
}
}
getLast(nian, yue, ri);
//printLast();
nian = lastNian;
yue = lastYue;
ri = lastRi;
//cout << 2 << endl;
}
int cases;
cin >> cases;
for(int i = 0; i < cases; i++){
int n, y, r;
cin >> n >> y >> r;
if(state[n-1900][y][r]) cout << "YES" << endl;
else cout << "NO" << endl;
}
//cout << 1 << endl;
//cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator