1. 程式人生 > >CCF計算機軟體能力認證試題練習:201809-2 買菜

CCF計算機軟體能力認證試題練習:201809-2 買菜

買菜

來源:CCF

標籤:

參考資料:

相似題目:

題目

小H和小W來到了一條街上,兩人分開買菜,他們買菜的過程可以描述為,去店裡買一些菜然後去旁邊的一個廣場把菜裝上車,兩人都要買n種菜,所以也都要裝n次車。具體的,對於小H來說有n個不相交的時間段[a1,b1],[a2,b2]…[an,bn]在裝車,對於小W來說有n個不相交的時間段[c1,d1],[c2,d2]…[cn,dn]在裝車。其中,一個時間段[s, t]表示的是從時刻s到時刻t這段時間,時長為t-s。
  由於他們是好朋友,他們都在廣場上裝車的時候會聊天,他們想知道他們可以聊多長時間。

輸入

輸入的第一行包含一個正整數n,表示時間段的數量。接下來n行每行兩個數ai,bi,描述小H的各個裝車的時間段。接下來n行每行兩個數ci,di,描述小W的各個裝車的時間段。

輸出

輸出一行,一個正整數,表示兩人可以聊多長時間。

輸入樣例

4
1 3
5 6
9 13
14 15
2 4
5 7
10 11
13 14

輸出樣例

3

提示

對於所有的評測用例,1 ≤ n ≤ 2000, ai < bi < ai+1,ci < di < ci+1,對於所有的i(1 ≤ i ≤ n)有,1 ≤ ai, bi, ci, di ≤ 1000000。

參考程式碼

#include<stdio.h>
#define MAXN 2005
struct DURATION{
	int s,t;
}dura1[MAXN],dura2[MAXN];
int n;
int ans;
int main(){
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d%d",&dura1[i].s,&dura1[i].t);
	}
	for(int i=0;i<n;i++){
		scanf("%d%d",&dura2[i].s,&dura2[i].t);
	}
	int i=0,j=0;
	int ans=0;
	while(i<n && j<n){
		if(dura1[i].t<=dura2[j].s){
			i++;
			continue;
		}
		
		if(dura1[i].s<dura2[j].s && dura1[i].t<dura2[j].t){
			ans+=dura1[i].t-dura2[j].s;
			i++;
			continue;
		}
		
		if(dura1[i].s>=dura2[j].s && dura1[i].t<dura2[j].t){
			ans+=dura1[i].t-dura1[i].s;
			i++;
			continue;
		}
		
		if(dura1[i].s>=dura2[j].s && dura1[i].s<=dura2[j].t && dura1[i].t>=dura2[j].t){
			ans+=dura2[j].t-dura1[i].s;
			j++;
			continue;
		}
		
		if(dura1[i].s>dura2[j].t){
			j++;
			continue;
		}
		
		if(dura1[i].s<=dura2[j].t && dura1[i].t>=dura2[j].t){
			ans+=dura2[j].t-dura2[j].s;
			j++;
			continue;
		}
	}
	printf("%d",ans);
	return 0;
} 

相關推薦

CCF計算機軟體能力認證試題練習201809-2

買菜 來源:CCF 標籤: 參考資料: 相似題目: 題目 小H和小W來到了一條街上,兩人分開買菜,他們買菜的過程可以描述為,去店裡買一些菜然後去旁邊的一個廣場把菜裝上車,兩人都要買n種菜,所以也都

CCF計算機軟體能力認證試題練習201403-1 相反數

相反數 來源: 標籤: 參考資料: 相似題目: 題目 有 N 個非零且各不相同的整數。請你編一個程式求出它們中有多少對相反數(a 和 -a 為一對相反數

CCF計算機軟體能力認證試題練習201712-3 Crontab

Crontab 來源: 標籤: 參考資料: 相似題目: 題目 輸入 輸出 輸入樣例 3 201711170032 201711222352 0 7

CCF計算機軟體能力認證試題練習-門禁系統(Java參考答案學習記錄)

問題描述   濤濤最近要負責圖書館的管理工作,需要記錄下每天讀者的到訪情況。每位讀者有一個編號,每條記錄用讀者的編號來表示。給出讀者的來訪記錄,請問每一條記錄中的讀者是第幾次出現。 輸入格式

CCF計算機軟體能力認證試題練習-影象旋轉(Java參考答案學習記錄)

問題描述   旋轉是影象處理的基本操作,在這個問題中,你需要將一個影象逆時針旋轉90度。   計算機中的影象表示可以用一個矩陣來表示,為了旋轉一個影象,只需要將對應的矩陣旋轉即可。 輸入格式   輸入的第一行包含兩個整數n, m,分別表示影象矩陣的行數和列數。   

CCF計算機軟體能力認證試題練習-相鄰數對(Java參考答案學習記錄)

問題描述   給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。 輸入格式   輸入的第一行包含一個整數n,表示給定整數的個數。   第二行包含所給定的n個整數。 輸出格式

201604-1折點計數——CCF計算機軟體能力認證試題歷屆真題

一、原題 問題描述 試題編號: 201604-1 試題名稱: 折點計數 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述   給定n個整數表示一個商店連續n天的銷售量。如果某天之前銷售量在增長,而後一天銷售量減少,則稱這一天

CCF計算機軟體能力認證模擬試題-最大的矩形(Java參考答案學習記錄)

問題描述   在橫軸上放了n個相鄰的矩形,每個矩形的寬度是1,而第i(1 ≤ i ≤ n)個矩形的高度是hi。這n個矩形構成了一個直方圖。例如,下圖中六個矩形的高度就分別是3, 1, 6, 5, 2, 3。   請找出能放在給定直方圖裡面積最大的矩形,它的邊要與座標軸平

2016年4月CCF計算機軟體能力認證模擬試題程式碼參考

問題描述 給定n個正整數,找出它們中出現次數最多的數。如果這樣的數有多個,請輸出其中最小的一個。 輸入格式 輸入的第一行只有一個正整數n(1 ≤ n ≤ 1000),表示數字的個數。 輸入的第二行有n個整數s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤

CCF計算機軟體能力認證模擬試題參考答案(JAVA)(201703 1+2

1.分蛋糕: 小明今天生日,他有n塊蛋糕要分給朋友們吃,這n塊蛋糕(編號為1到n)的重量分別為a1, a2, …, an。小明想分給每個朋友至少重量為k的蛋糕。小明的朋友們已經排好隊準備領蛋糕,對於每個朋友,小明總是先將自己手中編號最小的蛋糕分給他,當這個朋友所分得蛋

CCF計算機軟體能力認證 C++ 畫圖

問題描述   用 ASCII 字元來畫圖是一件有趣的事情,並形成了一門被稱為 ASCII Art 的藝術。例如,下圖是用 ASCII 字元畫出來的 CSPRO 字樣。    ..____.____..____..____...___.. ./._

CCF計算機軟體能力認證 C++ 俄羅斯方塊

問題描述   俄羅斯方塊是俄羅斯人阿列克謝·帕基特諾夫發明的一款休閒遊戲。   遊戲在一個15行10列的方格圖上進行,方格圖上的每一個格子可能已經放置了方塊,或者沒有放置方塊。每一輪,都會有一個新的由4個小方塊組成的板塊從方格圖的上方落下,玩家可以操作板塊左右移動放到合適的

第十三次CCF計算機軟體能力認證CSP題解

/* csp13-1 跳一跳 2017/04/02 by Tawn */ #include <bits/stdc++.h> using namespace std; const int maxn = 100; int main() { int i;

2018CCF計算機軟體能力認證試題

1. 201803-1 跳一跳 問題描述   近來,跳一跳這款小遊戲風靡全國,受到不少玩家的喜愛。   簡化後的跳一跳規則如下:玩家每次從當前方塊跳到下一個方塊,如果沒有跳到下一個方塊上則遊戲結束。   如果跳到了方塊上,但沒有跳到方塊的中心則獲得1分;

第十三次CCF計算機軟體能力認證 題解(臨時版)

前言剛做完= =第五題寫炸了先大概講講我的思路,有機會我會寫個完整的題解(估計不可能啦,忙的要死)這些程式碼都是我比賽時候寫的,不保證正確性第一題水題,記錄最後一次的得分即可#include <cstdio> using namespace std; int ma

201803-2碰撞的小球 CCF計算機軟體能力認證考試

試題編號: 201803-2 試題名稱: 碰撞的小球 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述   數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個

第三次CCF計算機軟體能力認證考試題解(Java)--201412--Z字形掃描--100分通過

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n;

CCF計算機軟體能力認證 C++ 碰撞的小球

問題描述   數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個不計體積的小球線上段上,開始時所有的小球都處在偶數座標上,速度方向向右,速度大小為1單位長度每秒。   當小球到達線段的端點(左端點或右端點)的時候,會立即向相反的方向移動,速度大小

第六次CCF計算機軟體能力認證考試(第四題)

問題描述   某國有n個城市,為了使得城市間的交通更便利,該國國王打算在城市之間修一些高速公路,由於經費限制,國王打算第一階段先在部分城市之間修一些單向的高速公路。   現在,大臣們幫國王擬了一

201712-2 遊戲 CCF計算機軟體能力認證考試

問題描述 試題編號: 201712-2 試題名稱: 遊戲 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述   有n個小朋友圍成一圈玩遊戲,小朋友從1至n編號,2號小朋友坐在1號小朋友的順時針方向,3號小朋友