A题,小小的模拟题,没看懂题意啊。
#include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <cstring> #include <map> #include <vector> #include <queue> using namespace std; char s[3][100001]; int main() { int i,l1,l2,l0,j; for(i = 0;i < 3;i ++) scanf("%s",s[i]); l0 = strlen(s[0]); l1 = strlen(s[1]); l2 = strlen(s[2]); int z1,z2; z1 = z2 = 0; for(i = 0;i < l0;i ++) { for(j = 0;j < l1;j ++) { if(s[0][i+j] != s[1][j]) break; } if(j == l1) { break; } } for(i = i+l1;i < l0;i ++) { for(j = 0;j < l2;j ++) { if(s[0][i+j] != s[2][j]) break; } if(j == l2) { z1 = 1; break; } } for(i = 0;i < l0/2;i ++) { swap(s[0][i],s[0][l0-i-1]); } for(i = 0;i < l0;i ++) { for(j = 0;j < l1;j ++) { if(s[0][i+j] != s[1][j]) break; } if(j == l1) { break; } } for(i = i+l1;i < l0;i ++) { for(j = 0;j < l2;j ++) { if(s[0][i+j] != s[2][j]) break; } if(j == l2) { z2 = 1; break; } } if(z1&&z2) { printf("both "); } else if(z2) { printf("backward "); } else if(z1) { printf("forward "); } else printf("fantasy "); return 0; }