結果
問題 |
No.3268 As Seen in Toasters
|
ユーザー |
![]() |
提出日時 | 2025-09-12 21:52:15 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 111 ms / 2,000 ms |
コード長 | 2,047 bytes |
コンパイル時間 | 1,980 ms |
コンパイル使用メモリ | 201,300 KB |
実行使用メモリ | 7,716 KB |
最終ジャッジ日時 | 2025-09-12 23:37:55 |
合計ジャッジ時間 | 5,722 ms |
ジャッジサーバーID (参考情報) |
judge7 / judge6 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 41 |
ソースコード
#include <bits/stdc++.h> using namespace std; //#include <atcoder/all> //using namespace atcoder; using ll = long long; using pp = pair<int,int>; #define rep(i, n) for (i = 0; (i) < (n); ++(i)) #define reps(i, a, n) for (i = (a); (i) < (n); ++(i)) #define rrep(i, n) for (i = (n-1); (i) >= (0); --(i)) #define all(a) (a).begin(), (a).end() #define oor(a,b,h,w) (a<0||a>=h||b<0||b>=w)//out of range #define fi first #define se second #define mkpr(a,b) make_pair(a,b) #define mktpl(a,b,c) make_tuple(a,b,c) #define fixp(a) fixed<<setprecision(a) //小数点以下指定 vector<int> dx={1,0,-1,0};//{1,1,0,-1,-1,-1,0,1}; vector<int> dy={0,-1,0,1};//{0,-1,-1,-1,0,1,1,1}; //ll keta_calc(ll x){ll ans=0;while(x){x/=10;ans++;}return ans;} //ll powll(ll x,ll y){ll ans=1;while(y){ans*=x;y--;}return ans;} //alias g++='g++ -std=c++17' #define chmin(a,b) a=min(a,(b)) #define chmax(a,b) a=max(a,(b)) int main(){ int i=0,j=0; int n,m,k; cin >> n ; vector<int> a(n); rep(i,n){ cin >> a[i]; } sort(all(a)); reverse(all(a)); // rep(i,n){ // cout << a[i] << " "; // }cout << endl; ll ans = 1001001001001001001; ll sum = 0; rep(i,n-1){ if(a[i] < 0 && a[i+1] < 0){ sum += -a[i] -a[i+1]; // cout << -a[i] -a[i+1] << " "; }else{ sum += abs(a[i] - a[i+1]); // cout << abs(a[i] - a[i+1]) << " "; } }//cout << endl; chmin(ans,sum); rrep(i,n-2){ swap(a[i],a[i+1]); } sum = 0; rep(i,n-1){ if(a[i] < 0 && a[i+1] < 0){ sum += -a[i] -a[i+1]; // cout << -a[i] -a[i+1] << " "; }else{ sum += abs(a[i] - a[i+1]); // cout << abs(a[i] - a[i+1]) << " "; } }//cout << endl; chmin(ans,sum); //sort(aitem.begin(),aitem.end(), //[](const vector<int> &alpha,const vector<int> &beta){return alpha[1] < beta[1];}); cout << ans << endl ; //if(flag==0)printf("Yes\n"); //else printf("No\n"); return 0; }