ural 1998 The old Padawan
2013-10-29 11:44
316 查看
先预处理每一个点往前退几步
要处理这一秒已经超出了要拿完所花的时间
要处理这一秒已经超出了要拿完所花的时间
#include <iostream> #include <cstring> #include <string> #include <cstdio> #include <cmath> #include <algorithm> #include <vector> #include <queue> #include <map> #define inf 0x3f3f3f3f typedef __int64 ll; using namespace std; int c[100005],w[100005],s[100005],t[100005],tmp,N,n,m,k,i,cnt,pos,ans; int main() { while(~scanf("%d%d%d",&n,&m,&k)) { for(i=1;i<=n;i++) scanf("%d",&w[i]); for(i=1;i<=m;i++) scanf("%d",&t[i]); s =w ; tmp=n-1; cnt=1; while(s <=k&&tmp>0) { s +=w[tmp]; tmp--; cnt++; } c =cnt; N=n-1; while(N) { s =s[N+1]-w[N+1]; cnt--; while(s <=k&&tmp>0) { s +=w[tmp]; tmp--; cnt++; } c =cnt; // printf("N:%d cnt:%d tmp:%d\n",N,cnt,tmp); if(tmp<=0) { for(i=N;i>0;i--) c[i]=i; break; } N--; } //处理每一个分散注意力的秒 t[0]=0; ans=0; pos=0; for(i=1;i<=m;i++) { tmp=(t[i]-t[i-1]); pos+=tmp; if(pos>n){//时间超出了全部拿完的时间 pos-=tmp; break; } ans+=tmp; pos=pos-1-c[pos-1]; } ans+=(n-pos); printf("%d\n",ans); } return 0; }
相关文章推荐
- URAL 1998 The old Padawan 二分
- URAL-1998 The old Padawan 二分
- ural 1998 The old Padawan
- ural 1998 The old Padawan (模拟+二分)
- (校赛)URAL 1998 The old Padawan
- URAL 1998 The old Padawan
- Ural 1998 The old Padawa
- Ural 1998 The old Padawan(二分)
- The old Padawan_最蛋疼的一个晚上
- URAL1998-The old Padawan
- I - The old Padawan Gym - 100285I——二分查找
- Cleanup failed to process the following paths; xxxx is too old
- URAL 1830 Help in the RNOS 思路,读题 难度:1
- C:The Old Key古老的密码之解
- The android gradle plugin version 3.0.0-alpha1 is too old
- Ural 2072 Kirill the Gardener 3
- ural 1207. Median on the Plane
- G - The Debut Album URAL - 2018(dp)
- URAL 1920 Titan Ruins: the Infinite Power of Magic