逆風的方向更適合飛翔
阿新 • • 發佈:2018-12-17
題目描述
北化ACM社團有n臺雲伺服器,每臺伺服器都有一個使用期限,第i臺伺服器還能使用Ri天。現在有m個任務需要部署到雲伺服器上執行,第j個任務需要執行Tj天。第j個任務能夠部署在第i臺伺服器上時當且僅當 Tj <=Ri,並且每臺伺服器在其使用期限內總共只能執行一個任務。即使Tk+Tj <=Ri,你也無法將第k個和第j個任務一起部署到第i 臺伺服器上,否則這題將失去其簽到題的作用(看到簽到題這幾個字的時候我笑了)。為了能充分利用雲伺服器,現在需要計算最多能部署多少任務。而你作為北化ACM的希望,這個問題需要由你 來解決。
輸入
單組資料 第一行兩個整數代表 n和m 第二行 n個整數代表 R1,R2,...,Rn 第三行 m個整數代表T1,T2,...,Tm 1<= n,m,Tj ,Ri <=100000
輸出
輸出一個整數代表最多有多少個任務能夠部署到雲伺服器上
樣例輸入
5 5
6 1 3 4 2
4 6 6 2 5
樣例輸出
3
宣告一下:此程式碼未經評測,主要是伺服器關了 ,剛寫好然後伺服器就關了。傷心,簽到題,不難,通過兩個陣列判斷實現就OK了。
程式碼:
#include <iostream> #include <cstring> #include<cstdio> #include<algorithm> using namespace std; bool cmp(int a,int b) { return a>b; } int R[1000008],T[1000008]; int main() { int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%d",&R[i]); for(int i=0;i<m;i++) scanf("%d",&T[i]); sort(R,R+n,cmp); sort(T,T+m,cmp); int ans=0,j=0; for(int i=0;i<n&&j<m;) { if(R[i]>=T[j]) { ans++; i++; j++; } else { j++; } } printf("%d\n",ans); return 0; }