CCF 2018-9-2野菜100点を買う

1601 ワード

試験問題番号:
201809-2
試験問題名:
野菜を買う
時間制限:
1.0s
メモリの制限:
256.0MB
問題の説明:
質問説明小Hと小Wは1つの街に来て、2人は別々に野菜を買って、彼らは野菜を買う過程を説明することができて、店に行っていくつかの野菜を買ってそれから隣の広場に行って野菜を車に積んで、2人はすべてn種類の野菜を買って、だからすべてn回の車を積みます.具体的には、小Hに対してn個の交差しない期間[a 1,b 1],[a 2,b 2]…[an,bn]は車を積んでいて、小さいWにとってn個の交差しない時間帯がある[c 1,d 1],[c 2,d 2]...[cn,dn]車を積んでいます.ここで、1つの期間[s,t]は、時刻sから時刻tまでの期間を表し、時間長はt−sである.彼らは親友なので、広場で車を積んでいる間におしゃべりをしています.彼らはどのくらい話せるか知りたいです.入力フォーマット入力の最初の行には、期間の数を表す正の整数nが含まれます.次にn行毎に2つの数ai,biを用いて,小Hの各積載期間を記述する.次にn行毎に2つの数ci,diを行い,小Wの各積載期間を記述する.出力フォーマットは1行を出力し、正の整数で、2人がどのくらい話せるかを示します.サンプル入力4 1 3 3 5 6 9 13 14 15 2 4 5 7 10 11 13 14サンプル出力3データ規模と約定すべての評価例に対して、1≦n≦2000、ai 
#include
#include
using namespace std;

typedef struct Node{
	int s,e;
}Node;

int main(){
	Node H[2008],W[2008];
	int n;
	cin>>n;
	for(int i=0;i>H[i].s>>H[i].e;
	}
	for(int i=0;i>W[i].s>>W[i].e;
	}
	int i=0,j=0,ans=0;;
	while(1){
		if(i>=n || j>=n)break;
		if(H[i].s>W[j].e){
			j++;continue;
		}
		if(H[i].e=W[j].s && H[i].e>=W[j].e){
			ans+=(W[j].e-H[i].s);j++;continue;
		}
		if(H[i].s<=W[j].s && H[i].e<=W[j].e){
			ans+=(H[i].e-W[j].s);i++;continue;
		}
		if(H[i].s>W[j].s && H[i].eH[i].s && W[j].e

CCFの试験问题の解答に関して更に多くて、クリックして>>CCFの数年来の认证の试験の解答