first commit
This commit is contained in:
223
2010-10-11/10415.cpp
Normal file
223
2010-10-11/10415.cpp
Normal file
@ -0,0 +1,223 @@
|
||||
/*
|
||||
date:107/10/20
|
||||
author:Chen Yi Jing
|
||||
|
||||
算手指按按鍵拿起來的次數,共十指
|
||||
*/
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
using namespace std;
|
||||
int main (){
|
||||
int n = 0;
|
||||
cin >> n;
|
||||
|
||||
string ss;
|
||||
getline(cin, ss); //do nothing
|
||||
|
||||
//case by case
|
||||
for (int i = 0; i < n; i++) {
|
||||
string s;
|
||||
int before[11] = {0};
|
||||
int after[11] = {0};
|
||||
int finger[11] = {0};
|
||||
getline(cin, s);
|
||||
// cin >> s;
|
||||
if(s[0] == 1){
|
||||
cout <<"qq";
|
||||
}
|
||||
|
||||
for (int j = 0; j < s.length(); j++) {
|
||||
//判斷指法
|
||||
switch(s[j]) {
|
||||
case 'c':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 1;
|
||||
after[9] = 1;
|
||||
after[10] = 1;
|
||||
break;
|
||||
case 'd':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 1;
|
||||
after[9] = 1;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'e':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 1;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'f':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'g':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'a':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 0;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'b':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 0;
|
||||
after[4] = 0;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'C':
|
||||
after[1] = 0;
|
||||
after[2] = 0;
|
||||
after[3] = 1;
|
||||
after[4] = 0;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'D':
|
||||
after[1] = 1;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 1;
|
||||
after[9] = 1;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'E':
|
||||
after[1] = 1;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 1;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'F':
|
||||
after[1] = 1;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'G':
|
||||
after[1] = 1;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'A':
|
||||
after[1] = 1;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 0;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'B':
|
||||
after[1] = 1;
|
||||
after[2] = 1;
|
||||
after[3] = 0;
|
||||
after[4] = 0;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
//判斷是否要加按下去的次數,還有將 before 更新
|
||||
for (int k = 1; k < 11; k++) {
|
||||
if (before[k] == 0 && after[k] == 1) {
|
||||
finger[k]++;
|
||||
before[k] = 1;
|
||||
}
|
||||
else if (before[k] == 1 && after[k] == 0) {
|
||||
before[k] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int k = 1; k < 10; k++) {
|
||||
cout << finger[k] << " ";
|
||||
}
|
||||
cout << finger[10];
|
||||
cout << endl;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user