Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2696    Accepted Submission(s): 1048 
 However,in your card,maybe only 33 appears,0000 is replaced by other numbers. Here is Samuel‘s ID number 331004198910120036 can you tell where he is from?The first 2 numbers tell that he is from Zhengjiang Province,number 19891012 is his birthday date (yy/mm/dd).
  However,in your card,maybe only 33 appears,0000 is replaced by other numbers. Here is Samuel‘s ID number 331004198910120036 can you tell where he is from?The first 2 numbers tell that he is from Zhengjiang Province,number 19891012 is his birthday date (yy/mm/dd).
水题:给你身份证号让你找信息;注意string不能用scanf输入。。。
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<string>
using namespace std;
const int INF=0x3f3f3f3f;
const double PI=acos(-1.0);
#define mem(x,y) memset(x,y,sizeof(x))
#define SI(x) scanf("%d",&x)
#define SL(x) scanf("%lld",&x)
#define PI(x) printf("%d",x)
#define PL(x) printf("%lld",x)
#define P_ printf(" ")
#define T_T while(T--)
typedef long long LL;
map<string,string>mp;
int main(){
	int T,y,m,d;
	string s;
	SI(T);
	mp["33"]="Zhejiang";
	mp["11"]="Beijing";
	mp["71"]="Taiwan";
	mp["81"]="Hong Kong";
	mp["82"]="Macao";
	mp["54"]="Tibet";
	mp["21"]="Liaoning";
	mp["31"]="Shanghai";
	T_T{
		//scanf("%s",s.c_str());
		cin>>s;
		printf("He/She is from %s,and his/her birthday is on %s,%s,%s based on the table.\n",mp[s.substr(0,2)].c_str(),s.substr(10,2).c_str(),s.substr(12,2).c_str(),s.substr(6,4).c_str());
		//cout<<"He/She is from "<<mp[s.substr(0,2)]<<",and his/her birthday is on "<<s.substr(10,2)<<","<<s.substr(12,2)<<","<<s.substr(6,4)<<" based on the table."<<endl;
	}
	return 0;
}
原文:http://www.cnblogs.com/handsomecui/p/5084243.html