ABC132 C - Divide the Problems
問題はこちら
atcoder.jp
方針
題意の を値の小さい順に並べ替えると,求める の個数は, より大きく, 以下である整数の個数に等しい。
簡単な問題なんですが,僕は最初
for(int i=d[n]; i<d[n-1]+1; i++){ int arc=0,abc=0; for(int j=0; j<n; j++){ if(d[j]>=i){ arc++; }else{ abc++; } } if(arc==abc){ count++; } }
こんな大層なループを作ってTLEになりました。脳死はいけません。
コード
#include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; vector<int> d(n); for(int i=0; i<n; i++){ cin>>d[i]; } sort(d.begin(),d.end()); int count=0; for(int i=d[n/2-1]+1; i<=d[n/2]; i++){ count++; } cout<<count<<endl; }