NC23368. Tachibana Kanade Loves Game
描述
输入描述
输入包含多组数据。
输入的第一行包含一个整数 T,表示数据组数。
接下来 T 行,每行包含四个整数 k, q, n, m,描述一组数据。
输出描述
输出 T 行,每行描述一组数据的解。如果本组数据中,立华奏存在必胜策略,则输出 Yes,否则输出 QAQ。
你可以认为数据保证不会出现平局的情形。
示例1
输入:
5 0 23333 2333333 5 1 1999999999 29999999999999 9 1 998244353998244 12345678 9 1 3 3 4 1 5 6 7
输出:
QAQ Yes QAQ QAQ QAQ
说明:
对于第一组样例,立华奏开始就死掉了,因此答案为QAQC++14(g++5.4) 解法, 执行用时: 379ms, 内存消耗: 1000K, 提交时间: 2019-04-08 20:23:59
#include<iostream> using namespace std; int p[]={2,3,5,7,11,13,17,19,23}; int main() { long t; cin>>t; while(t--) { long long k,q,n,m; cin>>k>>q>>n>>m; for(int i=0;p[i]<=m;i++) n-=n/p[i]; if(k&&k+n>q) cout<<"Yes"<<endl; else cout<<"QAQ"<<endl; } return 0; }
C++11(clang++ 3.9) 解法, 执行用时: 339ms, 内存消耗: 1008K, 提交时间: 2020-03-17 15:20:30
#include<iostream> using namespace std; int p[]={2,3,5,7,11,13,17,19,23}; int main() { long t; cin>>t; while(t--) { long long k,q,n,m; cin>>k>>q>>n>>m; for(int i=0;p[i]<=m;i++) n-=n/p[i]; if(k&&k+n>q) cout<<"Yes"<<endl; else cout<<"QAQ"<<endl; } return 0; }