2014年北理複試上機題
阿新 • • 發佈:2018-12-16
1
#include <iostream> #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <algorithm> using namespace std; const int maxn = 1005; int a[maxn]; int ind = 0; int n; int main() { int cnt = 0; //記錄佇列裡最多有多少個數 while(~scanf("%d", &n)) { if(cnt==0) { cnt++; a[ind++]=n; cout<<"輸入:"<<n<<" 輸出:"<<n<<endl; } else if(cnt==1) { if(a[0]==n) { cout<<"輸入:"<<n<<" 輸出:"<<n<<endl; } else{ cnt++; a[ind++]=n; cout<<"輸入:"<<n<<" 輸出:"<<a[1]<<","<<a[0]<<endl; } } else if(cnt==2){ if(a[0]==n||a[1]==n) { cout<<"輸入:"<<n<<" 輸出:"<<a[1]<<","<<a[0]<<endl; } else { cnt++; a[ind++]=n; cout<<"輸入:"<<n<<" 輸出:"<<a[2]<<","<<a[1]<<","<<a[0]<<endl; } } else{ int l1 = (ind-1+maxn)%maxn; int l2 = (ind-2+maxn)%maxn; int l3 = (ind-3+maxn)%maxn; if(a[l1]==n||a[l2]==n||a[l3]==n) { cout<<"輸入:"<<n<<" 輸出:"<<a[l1]<<","<<a[l2]<<","<<a[l3]<<endl; } else{ a[ind]=n; cout<<"輸入:"<<n<<" 輸出:"<<a[ind]<<","<<a[l1]<<","<<a[l2]<<endl; ind = (ind+1)%maxn; } } } }
2
#include <iostream> #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <algorithm> using namespace std; const int maxn = 1005; int a[maxn]; int ind = 0; int n; int main() { int cnt = 0; //記錄佇列裡最多有多少個數 while(~scanf("%d", &n)) { if(cnt==0) { cnt++; a[ind++]=n; cout<<"輸入:"<<n<<" 輸出:"<<n<<endl; } else if(cnt==1) { if(a[0]==n) { cout<<"輸入:"<<n<<" 輸出:"<<n<<endl; } else{ cnt++; a[ind++]=n; cout<<"輸入:"<<n<<" 輸出:"<<a[1]<<","<<a[0]<<endl; } } else if(cnt==2){ if(a[0]==n) { swap(a[0], a[1]); cout<<"輸入:"<<n<<" 輸出:"<<a[1]<<","<<a[0]<<endl; } else if(a[1]==n) { cout<<"輸入:"<<n<<" 輸出:"<<a[1]<<","<<a[0]<<endl; } else { cnt++; a[ind++]=n; cout<<"輸入:"<<n<<" 輸出:"<<a[2]<<","<<a[1]<<","<<a[0]<<endl; } } else{ int l1 = (ind-1+maxn)%maxn; int l2 = (ind-2+maxn)%maxn; int l3 = (ind-3+maxn)%maxn; if(a[l1]==n) { cout<<"輸入:"<<n<<" 輸出:"<<a[l1]<<","<<a[l2]<<","<<a[l3]<<endl; } else if(a[l2]==n) { swap(a[l1], a[l2]); cout<<"輸入:"<<n<<" 輸出:"<<a[l1]<<","<<a[l2]<<","<<a[l3]<<endl; } else if(a[l3]==n) { swap(a[l1], a[l3]); cout<<"輸入:"<<n<<" 輸出:"<<a[l1]<<","<<a[l2]<<","<<a[l3]<<endl; } else{ a[ind]=n; cout<<"輸入:"<<n<<" 輸出:"<<a[ind]<<","<<a[l1]<<","<<a[l2]<<endl; ind = (ind+1)%maxn; } } } }
3
#include <iostream> #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <algorithm> using namespace std; char s[110]; int main() { while(gets(s)) { int len = strlen(s); int ans = 0, cnt =0; for(int i=0;i<len;i++) { if(s[i]=='(') { cnt++; ans = max(ans, cnt); } else if(s[i]==')') { cnt--; } } cout<<"輸入:"<<s<<endl; cout<<"輸出:"<<ans<<endl; } }