涛神的城堡
濤神的城堡
Time Limit : 3000/1000ms (Java/Other)???Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 54???Accepted Submission(s) : 13
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
濤神有一個城堡給游客參觀,濤神特別的強(qiáng)壯,濤神的強(qiáng)壯值是strong,每個游客也有自己的強(qiáng)壯值,濤神為了賺錢,他會選取多個區(qū)間去打劫別人,所以如果比濤神弱的,他就要收取他們的強(qiáng)壯值的差值,但是還是有比濤濤強(qiáng)壯的,所以濤濤打劫那個人的話,濤濤要給那個人他們的強(qiáng)壯值的差值,所以濤濤可以選擇打不打劫那個區(qū)間的人,(人是可以重復(fù)打劫的,區(qū)間不行)濤濤最多能賺多少錢呢?Input
第一行給你三個整型變量n,m,strong(1≤n,m≤10000,1≤strong≤200),第二行給你n個人的強(qiáng)壯值a1,a2,...,an(1≤ai≤200).
接下來m行給你兩個整型變量l,r(1≤li≤ri≤n),代表區(qū)間里包括了第l個游客到第r個游客,濤濤可以選擇打不打劫這個區(qū)間
Output
輸出濤濤可以打劫到的最多的錢Sample Input
5 4 10 9 12 9 7 14 1 2 4 5 3 4 1 4Sample Output
7題目有毒,題目說區(qū)間不行,但必須按可以取重復(fù)的區(qū)間才能A;
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #define M 10015 5 #define ll long long int 6 using namespace std; 7 int a[M]; 8 int main(){ 9 int n,m,strong; 10 while(scanf("%d%d%d",&n,&m,&strong)!=EOF){ 11 for(int i=1;i<=n;i++){ 12 ll t; 13 scanf("%lld",&t); 14 a[i]=a[i-1]+strong-t; 15 } 16 ll cnt=0; 17 for(int i=0;i<m;i++){ 18 ll x,y; 19 scanf("%lld%lld",&x,&y); 20 ll sum=a[y]-a[x-1]; 21 if(sum>0) 22 cnt+=sum; 23 } 24 printf("%lld\n",cnt); 25 memset(a,0,sizeof(a)); 26 } 27 28 return 0; 29 }
?
轉(zhuǎn)載于:https://www.cnblogs.com/zllwxm123/p/7260362.html
總結(jié)
- 上一篇: 关于linux-Centos 7下mys
- 下一篇: n个台阶,一个人每次最多走m步,算法实现