提出 #76087633


ソースコード 拡げる

#include<bits/stdc++.h>
using namespace std;

#define int long long 

const int N=2e5+5;

bool st;
int n,t,a[N];
bool check(int x,int y,int xx,int yy,int xxx,int yyy) {
	return (__int128)(yy-y)*(xxx-xx)>=(__int128)(yyy-yy)*(xx-x);
}
bool ed;

signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cerr<<(double)(&st-&ed)/1024/1024<<'\n';
	cin>>t;
	while(t--) {
		cin>>n;
		int sum=0;
		for(int i=1;i<=n;i++) {
			int x;cin>>x;
			a[i]=a[i-1]+x-(i-1);
			if(i<n) sum+=a[i];
		}
		vector<int> s;s.clear();
		for(int i=0;i<=n;i++) {
			while(s.size()>=2) {
				int y=s.back();
				s.pop_back();int x=s.back();
				if(!check(x,a[x],y,a[y],i,a[i])) {
					s.push_back(y);
					break;
				} 
			}s.push_back(i);
		}
		int ssum=0;
		for(int i=0;i<s.size()-1;i++) {
			int u=s[i],v=s[i+1];
			int l=v-u,x=a[v]-a[u];
			int q=x/l;
			if(x<0&&x%l!=0) q--;
			int r=x-q*l;
			int m=l-r;
			__int128 sum1=m*a[u]+q*m*(m+1)/2;
			__int128 sum2=r*(__int128)(a[u]+m*q)+(q+1)*r*(r+1)/2;
			ssum+=sum1+sum2;
		}
		cout<<sum-ssum+a[n]<<'\n';
	}
	return 0;
}

提出情報

提出日時
問題 F - -1, +1
ユーザ wallacewan
言語 C++23 (GCC 15.2.0)
得点 0
コード長 1109 Byte
結果 WA
実行時間 57 ms
メモリ 5564 KiB

コンパイルエラー

./Main.cpp: In function 'int main()':
./Main.cpp:40:30: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |                 for(int i=0;i<s.size()-1;i++) {
      |                             ~^~~~~~~~~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 525
結果
AC × 1
AC × 14
WA × 1
セット名 テストケース
Sample 00_sample_00.txt
All 00_sample_00.txt, 01_handmade_00.txt, 01_handmade_01.txt, 01_handmade_02.txt, 01_handmade_03.txt, 02_random_00.txt, 02_random_01.txt, 02_random_02.txt, 02_random_03.txt, 02_random_04.txt, 02_random_05.txt, 02_random_06.txt, 02_random_07.txt, 02_random_08.txt, 02_random_09.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3844 KiB
01_handmade_00.txt AC 24 ms 5512 KiB
01_handmade_01.txt AC 25 ms 5448 KiB
01_handmade_02.txt AC 22 ms 5564 KiB
01_handmade_03.txt AC 26 ms 5476 KiB
02_random_00.txt AC 44 ms 3920 KiB
02_random_01.txt AC 57 ms 3960 KiB
02_random_02.txt AC 18 ms 3948 KiB
02_random_03.txt AC 32 ms 3820 KiB
02_random_04.txt AC 17 ms 3960 KiB
02_random_05.txt AC 32 ms 4044 KiB
02_random_06.txt AC 16 ms 4084 KiB
02_random_07.txt AC 31 ms 3928 KiB
02_random_08.txt AC 17 ms 5484 KiB
02_random_09.txt WA 32 ms 5504 KiB