題目描述
小K是一個海港的海關作業人員,每天都有許多船只到達海港,船上通常有很多來自不同國家的乘客。
小K對這些到達海港的船只非常感興趣,他按照時間記錄下了到達海港的每一艘船只情況;對于第i艘到達的船,他記錄了這艘船到達的時間ti (單位:秒),船上的乘 客數星ki,以及每名乘客的國籍 x(i,1), x(i,2),…,x(i,k);。
小K統計了n艘船的資訊,希望你幫忙計算出以每一艘船到達時間為止的24小時(24小時=86400秒)內所有乘船到達的乘客來自多少個不同的國家。
形式化地講,你需要計算n條資訊。對于輸出的第i條資訊,你需要統計滿足 ti - 86400 < tp <= ti的船只p,在所有的x(p,j)中,總共有多少個不同的數。
輸入格式:
第一行輸入一個正整數n,表示小K統計了 n艘船的資訊。
接下來n行,每行描述一艘船的資訊:前兩個整數ti和ki分別表示這艘船到達海港的時間和船上的乘客數量,接下來ki個整數x(i,j)表示船上乘客的國7。
保證輸入的ti是遞增的,單位是秒;表示從小K第一次上班開始計時,這艘船在第 ti 秒到達海港。
保證 , ,, 。
其中表示所有的ki的和。
輸出格式:
輸出n行,第i行輸出一個整數表示第i艘船到達后的統計資訊。
以下代碼
#include <cstdio>
int n,t[11000],k[11000],a=0,x[11000][33000],s=0,y[11000],c;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%d%d",&t[i],&k[i]);
for(int j=1;j<=k[i];++j)scanf("%d",&x[i][j]);
}
for(int i=1;i<=n;++i){
for(int j=i;t[j]>t[i]-86400;--j){
for(int l=1;l<=k[j];++l){
for(int u=1;u<=a;++u)if(x[j][l]!=y[u])++s;
if(s==a)y[++a]=x[j][l];
s=0;
}
}
printf("%d\n",a);
a=0;
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/53512.html
標籤:基礎類
下一篇:陣列指標
