Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:一直是WA,请高手看一下什么原因,谢谢In Reply To:一直是WA,请高手看一下什么原因,谢谢 Posted by:kurt1234 at 2019-07-15 13:15:13 > #include <iostream> > #include <string> > #include <vector> > #include <map> > #include <stdlib.h> > #include <algorithm> > #include <math.h> > > using namespace std; > > inline int change(char a) > { > switch (a){ > > case 'A': > case 'B': > case 'C': return 2; > case 'D': > case 'E': > case 'F': return 3; > case 'G': > case 'H': > case 'I': return 4; > case 'J': > case 'K': > case 'L': return 5; > case 'M': > case 'N': > case 'O': return 6; > case 'P': > case 'R': > case 'S': return 7; > case 'T': > case 'U': > case 'V': return 8; > case 'W': > case 'X': > case 'Y': return 9; > default:break; > } > } > > int convert(string number) > { > int rNumber = 0; > //covert the letter to number > string::iterator i = number.begin(); > for(int j = 6 ; i != number.end(); i++, j--) > { > > //trim the '-' in number > if(*i == '-' || *i == 'Q' || *i == 'Z'){ > number.erase(i); i--,j++;continue; > }else if(*i>='A' && *i <= 'Z'){ > //change letter to number > rNumber += change(*i) * pow(10.0,j); > continue; > }else{ > rNumber += (*i - '0' ) * pow(10.0,j); > } //ignore original number > > } > > return rNumber; > } > > int Compare(const void *one,const void *two) > { > int a = *((int*)one); > int b = *((int*)two); > if (a<b) > return -1; > if (a == b) > return 0; > return 1; > } > > int main(){ > > //get the number of the list > vector<string>::size_type nLen = 0; > cin >> nLen; > //map<string,int> resultList; > //input to numberList > vector<int> numberList; > > for(int i = 0; i < nLen; i++) > { > string number; > cin >> number; > int result = convert(number); > numberList.push_back(result); > /* map<string,int>::iterator iter = resultList.find(result); > if(iter == resultList.end()) > { > pair<string,int> value(result,1); > resultList.insert(value); > }else{ > iter->second += 1; > }*/ > > } > > /*for(map<string,int>::iterator i = resultList.begin(); i != resultList.end(); i++) > { > if(i->second == 1) > { > //cout << i->first <<" No duplicates." << endl; > continue; > }else{ > cout << i->first <<" "<< i->second << endl; > } > //cout << i->first <<" "<< i->second << endl; > } > */ > > > > qsort(&numberList[0],nLen,sizeof(int),Compare); > > bool flag = false; > for(vector<int>::iterator i = numberList.begin(),j = i; i != numberList.end(); i = j ) > { > > int count = 0; > while(*i == *j){ > count++; > j++; > }; > > if(count > 1) > { > cout << *i/10000<<"-"<<*i%10000<<" "<<count << endl; > flag = true; > } > //if(j == numberList.end()) break; > } > > if(!flag)cout<< "No duplicates.\n"; > > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator