亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 1033-ambiguous dates.cpp

?? ZOJ 1033 Ambiguous Dates.主要運用年月日的表示和一點搜索技法.
?? CPP
字號:
#include<vector>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef struct _date{
	int year,month,day;
	bool operator ==(const _date &t) const
	{
		return year==t.year && month==t.month && day==t.day;
	}
}date;
//用來存放日期和到目的日期(2001-11-4)的差值
vector<date> d;
vector<int> v;
//用來存儲輸入,記錄分割的字符串和日月年的字符串
char str[15],num[3][5],ymd[3][5];
//tl 日月年可能的數字的長度 , l 長度的具體情況
int TL[3]={2,2,3};
int L[3][3]={
	{1,2},
	{1,2},
	{1,2,4}
};
int cut[6][3]={
	{2,1,0},
	{2,0,1},
	{1,2,0},
	{1,0,2},
	{0,2,1},
	{0,1,2}
};
int m_d[12]={31,28,31,30,31,30,31,31,30,31,30,31};
//將字符串轉化為數值
int Str2Int(char *s);
//判斷是否是合法的日期
bool IsValid(date dd);
//判斷是否包含分割符
bool IsDelimited(char *s);
//處理年月日的字符串
void Deal(char s[3][5]);
//計算到1700-1-1的天數差
int dif(date dd);
int main()
{
	int T;
	int cases=1,f,k,i,j,p,q,l0,l1,l2;
	char t[5];
	date end;
	freopen("1033.txt","r",stdin);
//	freopen("out.txt","w+",stdout);
	end.year=2001,end.month=11,end.day=4;
	scanf("%d",&T);
	while(T--)
	{
		d.clear();
		v.clear();
		scanf("%s",str);
		//如果包含分隔符
		if(IsDelimited(str))
		{
			//分割出字符串
			f=k=0;
			for(i=0;str[i]!='\0';i++)
			{
				if(str[i]>='0' && str[i]<='9')
					t[k++]=str[i];
				else
				{
					t[k]='\0';
					strcpy(num[f],t);
					k=0;
					f++;
				}
			}
			t[k]='\0';
			strcpy(num[f],t);
			//處理
			for(i=0;i<6;i++)
			{
				for(j=0;j<3;j++)
					strcpy(ymd[cut[i][j]],num[j]);
				Deal(ymd);
			}
		}
		//如果沒有包含分隔符
		else
		{
			for(i=0;i<6;i++)
			{
				for(j=0;j<TL[cut[i][0]];j++)
					for(p=0;p<TL[cut[i][1]];p++)
						for(k=0;k<TL[cut[i][2]];k++)
						{
							l0=L[cut[i][0]][j];
							l1=L[cut[i][1]][p];
							l2=L[cut[i][2]][k];
							if(l0+l1+l2!=strlen(str))
								continue;
							//分割字符串
							f=0;
							for(q=0;q<l0;q++)
								num[0][q]=str[q];
							num[0][q]='\0';

							for(;q<l0+l1;q++)
								num[1][q-l0]=str[q];
							num[1][q-l0]='\0';

							for(;str[q]!='\0';q++)
								num[2][q-l0-l1]=str[q];
							num[2][q-l0-l1]='\0';
							for(q=0;q<3;q++)
								strcpy(ymd[cut[i][q]],num[q]);
							Deal(ymd);
						}
			}
		}
		printf("Scenario #%d:\n",cases++);
		//計算日期差
		k=dif(end);
		for(i=0;i<d.size();i++)
			v.push_back(dif(d[i])-k);
		sort(v.begin(),v.end());
		if(v.empty())
			printf("Illegal date\n");
		else
		{
			for(i=0;i<v.size();i++)
				printf("%d\n",v[i]);
		}
		printf("\n");
	}
	return 0;
}

bool IsDelimited(char *s)
{
	char ch;
	for(int i=0;*(s+i)!='\0';i++)
	{
		ch=*(s+i);
		if(ch=='/' || ch==92 || ch=='-' || ch==',' || ch=='.')
			return true;	
	}
	return false;
}

int Str2Int(char *s)
{
	int ret=0,i=0;
	while(*(s+i)!='\0')
	{
		ret=ret*10+*(s+i)-'0';
		i++;
	}
	return ret;
}

bool IsValid(date dd)
{
	if(dd.year<1700 || dd.year>2299)
		return false;
	if(dd.month>12 || dd.month<=0)
		return false;
	if(dd.month==2 && (dd.year%400==0 || (dd.year%100!=0 && dd.year%4==0)))
	{
		if(dd.day>29 || dd.day<=0)
			return false;
	}
	else
	{
		if(dd.day>m_d[dd.month-1] || dd.day<=0)
			return false;
	}
	return true;
}

void Deal(char s[3][5])
{
	date dd;
	int j,p,k;
	//年的長度為4
	if(strlen(s[2])==4)
	{
		dd.year=Str2Int(ymd[2]);
		dd.month=Str2Int(ymd[1]);
		dd.day=Str2Int(ymd[0]);
		if(!IsValid(dd))
			return;
		for(j=0;j<d.size();j++)
		{
			if(dd==d[j])
				break;
		}
		if(j==d.size())
			d.push_back(dd);
	}
	//年的長度為2或1
	else if(strlen(ymd[2])==2 || strlen(ymd[2])==1)
	{
		k=Str2Int(ymd[2]);
		dd.month=Str2Int(ymd[1]);
		dd.day=Str2Int(ymd[0]);
		for(j=17;j<=22;j++)
		{
			dd.year=100*j+k;
			if(!IsValid(dd))
				continue;
			for(p=0;p<d.size();p++)
			{
				if(dd==d[p])
					break;
			}
			if(p==d.size())
				d.push_back(dd);
		}
	}
}

int dif(date dd)
{
	int ret,i;
	//先求到 dd.year-1-1的天數差
	ret=(dd.year-1700)*365;
	if(2000<dd.year)
		ret++;
	//ret+=(dd.year/100-17)*24+dd.year%100/4;
	ret+=(dd.year/100-17)*24;
	if(dd.year%100!=0)
		ret+=(dd.year%100-1)/4;
	//再求到 dd.year-dd.month-1的天數差
	for(i=1;i<dd.month;i++)
		ret+=m_d[i-1];
	//再求到 dd.year-dd.month-dd.day
	ret+=dd.day-1;
	if(2<dd.month && (dd.year%400==0 || (dd.year%100!=0 && dd.year%4==0)))
		ret++;
	return ret;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久www免费人成精品| 欧美一区二区三区在线视频| 麻豆一区二区三区| 午夜伊人狠狠久久| 亚洲一区视频在线| 亚洲国产综合91精品麻豆| 亚洲制服丝袜av| 亚洲另类一区二区| 亚洲一级二级在线| 亚洲成人av一区二区| 婷婷国产在线综合| 久久精品国产一区二区三| 久久国产精品区| 国产精品资源网| www.一区二区| 色成人在线视频| 91精品国产综合久久福利| 精品三级在线观看| 国产精品久久久久永久免费观看| 国产精品福利影院| 亚洲一级在线观看| 久久99精品国产.久久久久 | 日本高清免费不卡视频| 日本高清不卡一区| 日韩亚洲欧美中文三级| 国产日产欧美一区二区视频| 亚洲欧洲日产国码二区| 亚洲aⅴ怡春院| 国产高清久久久| 一本色道久久综合亚洲aⅴ蜜桃| 色婷婷狠狠综合| 欧美一卡二卡三卡四卡| 中文字幕久久午夜不卡| 亚洲国产日韩a在线播放| 国产一区二区三区高清播放| 91美女福利视频| 日韩欧美你懂的| 亚洲欧美日韩在线播放| 久久精品国产99| 色老头久久综合| 国产婷婷色一区二区三区在线| 亚洲视频免费在线| 国产米奇在线777精品观看| 色成人在线视频| 久久久久久久一区| 毛片不卡一区二区| 日本大香伊一区二区三区| www激情久久| 婷婷国产v国产偷v亚洲高清| 粉嫩嫩av羞羞动漫久久久| 在线综合亚洲欧美在线视频 | 91小视频免费看| 欧美电影免费观看高清完整版 | 9191国产精品| 国产精品灌醉下药二区| 国产在线国偷精品产拍免费yy| 在线免费观看日本欧美| 国产精品久久久久久户外露出 | 成人一级片网址| 精品日韩欧美一区二区| 亚洲国产视频一区二区| 91香蕉视频污| 国产精品第13页| www.亚洲在线| 国产精品国产自产拍高清av王其| 激情小说欧美图片| 精品区一区二区| 美女在线视频一区| 欧美不卡在线视频| 久久99精品久久久久| 欧美xxx久久| 美洲天堂一区二卡三卡四卡视频| 欧美日韩夫妻久久| 污片在线观看一区二区| 欧美三日本三级三级在线播放| 亚洲女人****多毛耸耸8| 99精品视频在线免费观看| 国产精品美女视频| 91亚洲精品久久久蜜桃| 亚洲图片另类小说| 在线区一区二视频| 亚洲国产欧美在线| 在线电影院国产精品| 午夜久久久影院| 欧美裸体一区二区三区| 免费在线观看一区| 精品久久久久久亚洲综合网| 精品一区二区三区蜜桃| 久久美女高清视频 | 亚洲视频电影在线| 在线视频一区二区三区| 一区二区成人在线| 日韩一区二区不卡| 国产精品77777| 国产精品高潮呻吟久久| 91成人国产精品| 日韩高清不卡一区二区三区| 欧美一区二区三级| 韩日欧美一区二区三区| 国产精品欧美一区二区三区| 91久久精品一区二区二区| 亚欧色一区w666天堂| 久久综合九色综合欧美98| 懂色av一区二区三区蜜臀| 曰韩精品一区二区| 日韩欧美一二三区| 不卡的电影网站| 日韩精品1区2区3区| 精品久久久久av影院| 波多野结衣精品在线| 午夜精品久久久久久| 国产三级一区二区| 欧美日韩国产一级二级| 国产精品123| 午夜电影久久久| 国产精品久久免费看| 日韩天堂在线观看| 91在线丨porny丨国产| 久久精品国产一区二区三| 亚洲欧美电影院| 久久这里只有精品首页| 日本大香伊一区二区三区| 国产一区二区三区日韩| 亚洲成人中文在线| 日本一区二区三区久久久久久久久不| 在线精品亚洲一区二区不卡| 国产成人精品午夜视频免费| 五月天婷婷综合| 亚洲欧洲日产国产综合网| 日韩欧美综合一区| 欧美日韩亚洲综合| 91丨九色丨国产丨porny| 精品一区二区三区在线视频| 一区二区三区 在线观看视频| 国产午夜精品久久久久久久| 91精品国产色综合久久不卡电影 | 欧美色图激情小说| eeuss影院一区二区三区| 国产一区二区三区日韩| 久久不见久久见中文字幕免费| 一二三区精品福利视频| 亚洲日本电影在线| 亚洲国产高清在线| 国产亚洲精品bt天堂精选| 欧美一区二区三区免费| 91精品在线麻豆| 欧美一区二区三区四区在线观看 | 成人看片黄a免费看在线| 久久精品99国产国产精| 麻豆精品在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲成av人**亚洲成av**| 亚洲国产一区二区三区青草影视| 亚洲综合清纯丝袜自拍| 亚洲免费在线观看视频| 一区二区三区资源| 亚洲一区二三区| 一区二区三区 在线观看视频| 一区二区三区免费在线观看| 亚洲综合色成人| 日本午夜精品视频在线观看| 蜜桃视频一区二区三区| 久久成人久久鬼色| 丁香激情综合国产| 99久久伊人网影院| 欧美性大战xxxxx久久久| 欧美日本韩国一区| 精品福利av导航| 中文字幕精品综合| 亚洲一二三四在线观看| 天天射综合影视| 久久狠狠亚洲综合| 成人午夜av在线| 色天天综合久久久久综合片| 欧美三级资源在线| 日韩精品一区二区三区在线| 国产午夜精品一区二区三区视频| 亚洲欧洲性图库| 日本女优在线视频一区二区| 国产成人在线色| 欧美色图免费看| 久久免费偷拍视频| 亚洲婷婷国产精品电影人久久| 亚洲午夜成aⅴ人片| 国内精品国产成人| 色婷婷狠狠综合| 久久综合九色综合97婷婷| 亚洲视频在线一区| 蜜臀精品一区二区三区在线观看| 岛国精品在线观看| 欧美丰满嫩嫩电影| 国产精品免费免费| 奇米综合一区二区三区精品视频| 国产激情视频一区二区在线观看| 日本韩国一区二区三区视频| 久久久久久97三级| 五月天一区二区| 91免费在线视频观看| 日韩欧美国产精品一区| 一区二区三区成人在线视频|