1. 程式人生 > >小W與染色

小W與染色

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
這題寫一堆if判斷這塊布是否要重新染色,值得注意的是要用read函式輸入,否則會TLE

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,a[1000005],ans;
queue<ll>q1,q2;
inline ll read()
{
 char c=getchar();
 ll t=0;
 while(c>'9'||c<'0')c=getchar();
 while(c>='0'&&c<='9')
 {
  t=t*10+c-'0';
c=getchar(); } return t; } int main() { n=read(); for(int i=1;i<=n;i++) a[i]=read(); sort(a+1,a+n+1); for(int i=1;i<=n;i++) q1.push(a[i]); for(int i=1;i<n;i++) { ll v1,v2; if(q1.empty()) { v1=q2.front(); q2.pop(); } else if(q2.empty()) { v1=q1.front(); q1.
pop(); } else { if(q1.front()<q2.front()) { v1=q1.front(); q1.pop(); } else { v1=q2.front(); q2.pop(); } } if(q1.empty()) { v2=q2.front(); q2.pop(); } else if(q2.empty()) { v2=q1.front(); q1.pop(); } else { if(q1.front()<
q2.front()) { v2=q1.front(); q1.pop(); } else { v2=q2.front(); q2.pop(); } } q2.push(v1+v2); ans+=v1+v2; } printf("%lld\n",ans); return 0; }

來源:zr