Submission #1174460
Source Code Expand
using System; using System.Text; using System.Collections.Generic; class Solve{ public Solve(){} int N; StringBuilder sb; public static int Main(){ new Solve().Run(); return 0; } void Run(){ sb = new StringBuilder(); Calc(); Console.Write(sb.ToString()); } void Calc(){ N = int.Parse(Console.ReadLine()); string[] str = Console.ReadLine().Split(' '); long[] T = new long[N]; for(int i=0;i<N;i++){ T[i] = int.Parse(str[i]); } int M = int.Parse(Console.ReadLine()); for(int j=0;j<M;j++){ str = Console.ReadLine().Split(' '); long originalT = T[int.Parse(str[0])-1]; T[int.Parse(str[0])-1] = int.Parse(str[1]); long[] DP = new long[N]; long[] sum = new long[N]; sum[0] = T[0]; for(int i=1;i<N;i++){ sum[i] = sum[i-1] + T[i]; } ConvexHullTrick Con = new ConvexHullTrick(N+1); Con.Add(-1,1); for(int i=0;i<N;i++){ DP[i] = Math.Max(i == 0 ? 0 : DP[i-1],Con.Query(-i)-sum[i]+i*(i+1)/2); Con.Add(i,DP[i]+sum[i]+i*(i-1)/2); } sb.Append(DP[N-1]+"\n"); T[int.Parse(str[0])-1] = originalT; } } } struct ConvexHullTrick{ long[] A; long[] B; //C[i]はi番目の点に適用するのがi+1番目の点に適用するよりも大きくなる最大のx 単調増加になる long[] C; int p; int find; public ConvexHullTrick(int N){ A = new long[N]; B = new long[N]; C = new long[N]; p = 0; find = 0; } //aは単調増加でないといけない public void Add(long a,long b){ if(p == 0){ A[0] = a; B[0] = b;; p++; } else{ for(int i=p;i>0;i--){ long X = Compare(A[i-1],B[i-1],a,b); if(i == 1 || X > C[i-2]){ C[i-1] = X; A[i] = a; B[i] = b; p = i+1; break; } } } } //1つはAddしていないといけない public long Query(long x){ return Calc(x,findMax(x)); } int findMax(long x){ find = Math.Min(find,p-1); while(find < p-1 && C[find] < x){ find++; } while(find > 0 && C[find-1] >= x){ find--; } return find; } long Calc(long x,int i){ return A[i]*x + B[i]; } //(a1,b1)に適用する方が(a2,b2)に適用するより大きくなる最大のx long Compare(long a1,long b1,long a2,long b2){ return (b1-b2-1)/(a2-a1) - ((b1-b2-1)%(a2-a1) < 0 ? 1 : 0); } }
Submission Info
Submission Time | |
---|---|
Task | F - Contest with Drinks Hard |
User | leign |
Language | C# (Mono 4.6.2.0) |
Score | 0 |
Code Size | 2972 Byte |
Status | TLE |
Exec Time | 2104 ms |
Memory | 48928 KB |
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 1400 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt |
All | sample_01.txt, sample_02.txt, subtask_1_high_equaly_01.txt, subtask_1_high_equaly_02.txt, subtask_1_high_equaly_03.txt, subtask_1_high_equaly_04.txt, subtask_1_high_rand_01.txt, subtask_1_high_rand_02.txt, subtask_1_high_rand_03.txt, subtask_1_high_rand_04.txt, subtask_1_killer_01.txt, subtask_1_killer_02.txt, subtask_1_low_equaly_01.txt, subtask_1_low_equaly_02.txt, subtask_1_low_equaly_03.txt, subtask_1_low_equaly_04.txt, subtask_1_low_rand_01.txt, subtask_1_low_rand_02.txt, subtask_1_low_rand_03.txt, subtask_1_low_rand_04.txt, subtask_1_max_high_equaly_01.txt, subtask_1_max_high_equaly_02.txt, subtask_1_max_high_equaly_03.txt, subtask_1_max_high_equaly_04.txt, subtask_1_max_high_rand_01.txt, subtask_1_max_high_rand_02.txt, subtask_1_max_high_rand_03.txt, subtask_1_max_high_rand_04.txt, subtask_1_max_low_equaly_01.txt, subtask_1_max_low_equaly_02.txt, subtask_1_max_low_equaly_03.txt, subtask_1_max_low_equaly_04.txt, subtask_1_max_low_rand_01.txt, subtask_1_max_low_rand_02.txt, subtask_1_max_low_rand_03.txt, subtask_1_max_low_rand_04.txt, subtask_1_max_rand_equaly_01.txt, subtask_1_max_rand_equaly_02.txt, subtask_1_max_rand_equaly_03.txt, subtask_1_max_rand_equaly_04.txt, subtask_1_max_rand_rand_01.txt, subtask_1_max_rand_rand_02.txt, subtask_1_max_rand_rand_03.txt, subtask_1_max_rand_rand_04.txt, subtask_1_min_rand_rand_01.txt, subtask_1_min_rand_rand_02.txt, subtask_1_rand_equaly_01.txt, subtask_1_rand_equaly_02.txt, subtask_1_rand_equaly_03.txt, subtask_1_rand_equaly_04.txt, subtask_1_rand_rand_01.txt, subtask_1_rand_rand_02.txt, subtask_1_rand_rand_03.txt, subtask_1_rand_rand_04.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 21 ms | 11092 KB |
sample_02.txt | AC | 21 ms | 11092 KB |
subtask_1_high_equaly_01.txt | TLE | 2104 ms | 31892 KB |
subtask_1_high_equaly_02.txt | TLE | 2104 ms | 28284 KB |
subtask_1_high_equaly_03.txt | TLE | 2104 ms | 17356 KB |
subtask_1_high_equaly_04.txt | TLE | 2104 ms | 29432 KB |
subtask_1_high_rand_01.txt | TLE | 2104 ms | 33048 KB |
subtask_1_high_rand_02.txt | TLE | 2104 ms | 34496 KB |
subtask_1_high_rand_03.txt | TLE | 2104 ms | 33636 KB |
subtask_1_high_rand_04.txt | TLE | 2104 ms | 34044 KB |
subtask_1_killer_01.txt | AC | 21 ms | 9172 KB |
subtask_1_killer_02.txt | AC | 20 ms | 9044 KB |
subtask_1_low_equaly_01.txt | TLE | 2104 ms | 30764 KB |
subtask_1_low_equaly_02.txt | TLE | 2104 ms | 35532 KB |
subtask_1_low_equaly_03.txt | TLE | 2104 ms | 32984 KB |
subtask_1_low_equaly_04.txt | TLE | 2104 ms | 37640 KB |
subtask_1_low_rand_01.txt | TLE | 2104 ms | 37028 KB |
subtask_1_low_rand_02.txt | TLE | 2104 ms | 22032 KB |
subtask_1_low_rand_03.txt | TLE | 2104 ms | 36048 KB |
subtask_1_low_rand_04.txt | TLE | 2104 ms | 29828 KB |
subtask_1_max_high_equaly_01.txt | TLE | 2104 ms | 39740 KB |
subtask_1_max_high_equaly_02.txt | TLE | 2104 ms | 39736 KB |
subtask_1_max_high_equaly_03.txt | TLE | 2104 ms | 37664 KB |
subtask_1_max_high_equaly_04.txt | TLE | 2104 ms | 39744 KB |
subtask_1_max_high_rand_01.txt | TLE | 2104 ms | 39704 KB |
subtask_1_max_high_rand_02.txt | TLE | 2104 ms | 39748 KB |
subtask_1_max_high_rand_03.txt | TLE | 2104 ms | 38992 KB |
subtask_1_max_high_rand_04.txt | TLE | 2104 ms | 39728 KB |
subtask_1_max_low_equaly_01.txt | TLE | 2104 ms | 39680 KB |
subtask_1_max_low_equaly_02.txt | TLE | 2104 ms | 35584 KB |
subtask_1_max_low_equaly_03.txt | TLE | 2104 ms | 47996 KB |
subtask_1_max_low_equaly_04.txt | TLE | 2104 ms | 33532 KB |
subtask_1_max_low_rand_01.txt | TLE | 2104 ms | 40048 KB |
subtask_1_max_low_rand_02.txt | TLE | 2104 ms | 37860 KB |
subtask_1_max_low_rand_03.txt | TLE | 2104 ms | 48928 KB |
subtask_1_max_low_rand_04.txt | TLE | 2104 ms | 40272 KB |
subtask_1_max_rand_equaly_01.txt | TLE | 2104 ms | 41816 KB |
subtask_1_max_rand_equaly_02.txt | TLE | 2104 ms | 39760 KB |
subtask_1_max_rand_equaly_03.txt | TLE | 2104 ms | 37724 KB |
subtask_1_max_rand_equaly_04.txt | TLE | 2104 ms | 43248 KB |
subtask_1_max_rand_rand_01.txt | TLE | 2104 ms | 39756 KB |
subtask_1_max_rand_rand_02.txt | TLE | 2104 ms | 43852 KB |
subtask_1_max_rand_rand_03.txt | TLE | 2104 ms | 37708 KB |
subtask_1_max_rand_rand_04.txt | TLE | 2104 ms | 46932 KB |
subtask_1_min_rand_rand_01.txt | AC | 21 ms | 11092 KB |
subtask_1_min_rand_rand_02.txt | AC | 21 ms | 11220 KB |
subtask_1_rand_equaly_01.txt | TLE | 2104 ms | 27896 KB |
subtask_1_rand_equaly_02.txt | TLE | 2104 ms | 35152 KB |
subtask_1_rand_equaly_03.txt | TLE | 2104 ms | 31976 KB |
subtask_1_rand_equaly_04.txt | TLE | 2104 ms | 29288 KB |
subtask_1_rand_rand_01.txt | TLE | 2104 ms | 43168 KB |
subtask_1_rand_rand_02.txt | TLE | 2104 ms | 43336 KB |
subtask_1_rand_rand_03.txt | TLE | 2104 ms | 40424 KB |
subtask_1_rand_rand_04.txt | TLE | 2104 ms | 30424 KB |