[TIOJ] 1417. 總和
題目連結:http://tioj.infor.org/problems/1417
梗梗的題目,不能用long long但又會超過int,這時大部分人都會選擇手爆大數,不過其實還有一招是__int128,他是一種GCC內建的型別,一個單純128bit的整數型別,不過他沒有包在cin之類的輸入函數裡面,所以要先用int讀進來後轉型之類的,不過反正這題一開始就是好的,所以就直接用吧XDD不過要注意一下你要幫他的標頭檔引入IO的函式庫
更新:用__int128的已經被rejudge掉了QQ,只能手爆大數了QQ
梗梗的題目,不能用long long但又會超過int,這時大部分人都會選擇手爆大數,不過其實還有一招是__int128,他是一種GCC內建的型別,一個單純128bit的整數型別,不過他沒有包在cin之類的輸入函數裡面,所以要先用int讀進來後轉型之類的,不過反正這題一開始就是好的,所以就直接用吧XDD不過要注意一下你要幫他的標頭檔引入IO的函式庫
更新:用__int128的已經被rejudge掉了QQ,只能手爆大數了QQ
#include <bits/stdc++.h>
using namespace std;
#include "lib1417.h"
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);
int t;cin>>t;
while(t--){
int n,s,t;cin>>n>>s>>t;
__int128 ans=0;
vector<int> arr(n);
for(int i=0;i<n;i++) cin>>arr[i];
sort(arr.begin(),arr.end());
for(int i=s-1;i<t;i++)ans+=arr[i];
bool less0=(ans<0);
if(less0)ans=-ans;
string ss="";
if(ans==0)ss="0";
while(ans!=0){
ss=char('0'+(ans%10))+ss;
ans/=10;
}
if(less0)ss='-'+ss;
output(ss.c_str());
}
return 0;
}
留言
張貼留言