标签:alt iostream mod std type scan ++ width memset
根据题目中的一长串公式可以得到,顺序添加的每个水晶一定可以构成一个连续的区间。
#include <algorithm> #include <cstdio> #include <cstring> #include <iostream> #include <map> #include <string> #define Max 1000001 #define MAXN 1000005 #define MOD 1000000007 #define rin freopen("in.txt","r",stdin) #define rout freopen("1.out","w",stdout) #define Del(a,b) memset(a,b,sizeof(a)) typedef long long LL; using namespace std; int n, k; int a[2 * 1005]; char b[2 * 1005]; int L,R; bool Solve() { int l,r; l=-1,r=1; for(int i=2;i<=n;i++){ if(b[i]==‘N‘){ l-=a[i]; r+=a[i]; }else if(b[i]==‘D‘){ l-=a[i]; }else{ r+=a[i]; } } if(k>=l&&k<=r) return true; return false; } int main() { rin; int T; while (cin >> T) { while (T--) { scanf("%d%d", &n, &k); for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); } getchar(); for (int i = 1; i <= n; i++) { scanf("%c", &b[i]); getchar(); } if (Solve()) { cout << "yes" << endl; } else cout << "no" << endl; } } return 0; }
标签:alt iostream mod std type scan ++ width memset
原文地址:http://www.cnblogs.com/Belleaholic/p/7384153.html