結果
| 問題 | No.3632 IQR |
| コンテスト | |
| ユーザー |
triangle_coder
|
| 提出日時 | 2026-08-21 21:48:54 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.90.0) |
| 結果 |
AC
|
| 実行時間 | 176 ms / 2,000 ms |
| + 791µs | |
| コード長 | 2,926 bytes |
| 記録 | |
| コンパイル時間 | 4,575 ms |
| コンパイル使用メモリ | 382,968 KB |
| 実行使用メモリ | 7,040 KB |
| 最終ジャッジ日時 | 2026-08-21 21:49:05 |
| 合計ジャッジ時間 | 9,151 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 63 |
ソースコード
#include <bits/stdc++.h>
#include <atcoder/all>
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
using namespace std;
using namespace atcoder;
typedef pair<ll,ll> pll;
ll p = 998244353;
ll INF = 2000000000000000010;
template<class T> bool chmax(T &a, const T &b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> bool chmin(T &a, const T &b) { if (b < a) { a = b; return 1; } return 0; }
void yn(bool a){
if(a){
cout << "Yes" <<endl;
}
else{
cout << "No" << endl;
}
}
ll mex(const vector<ll>& a){
ll n = (ll)a.size();
vector<int> b(n+1,0);
for(ll i = 0;i<n;i++){
if(a[i] < n && a[i] >= 0){
b[a[i]]++;
}
}
for(ll i = 0;i<n+1;i++){
if(b[i] == 0){
return i;
}
}
return 0;
}
vector<ll> two(64,1);
void init() {
std::cout << std::fixed << std::setprecision(10);
for(ll i = 1;i<64;i++){
two.at(i) = two.at(i-1)*2;
}
}
vector<vector<ll>> vec_seki(const vector<vector<ll>>& a,const vector<vector<ll>>& b,ll p){
if(a.size() == 0){
return {};
}
assert(a[0].size() == b.size());
assert(p != 0);
vector<vector<ll>> ans(a.size(),vector<ll>(b[0].size(),0));
for(ll i = 0;i<(ll)a.size();i++){
for(ll k = 0;k<(ll)a[0].size();k++){
for(ll j = 0;j<(ll)b[0].size();j++){
ans[i][j] = (ans[i][j]+a[i][k] * b[k][j])%p;
}
}
}
return ans;
}
template<class T>
vector<pair<T,ll>> runlength(const vector<T>& vec){
vector<pair<T,ll>> ret;
if(vec.size()==0){
return ret;
}
pair<T,ll> temp;
temp.first = vec[0];
temp.second = 1;
ret.push_back(temp);
T mae = vec[0];
for(ll i = 1;i<(ll)vec.size();i++){
if(vec[i] != mae){
temp.first = vec[i];
temp.second = 1;
ret.push_back(temp);
mae = vec[i];
}
else{
ret[ret.size()-1].second++;
}
}
return ret;
}
ll bintoll(const string& S){
ll ret = 0;
ll n = (ll)S.size();
for(ll i = 0;i<n;i++){
if(S[i] == '1'){
ret += 1LL<<(n-1-i);
}
}
return ret;
}
string lltobin(const ll N){
if(N==0) return "0";
string S;
ll Nco = N;
while(Nco!= 0){
S += char('0' + (Nco&1));
Nco >>= 1;
}
reverse(S.begin(),S.end());
return S;
}
int main() {
init();
ll N;
cin >> N;
vector<double> A(N);
for(ll i = 0;i<N;i++){
cin >> A[i];
}
sort(A.begin(),A.end());
double q1,q2,q3,u;
if(N%2 == 0){
q2 = (A[N/2]+A[N/2-1])/(double)2;
}
else{
q2 = A[(N)/2];
}
if(N%4 == 0 || N%4 == 1){
q1 = (A[N/4]+A[N/4 - 1])/(double)2;
q3 =(A[N - 1 - N/4]+A[N - 1 -(N/4 - 1)])/(double)2;
}
else{
q1 = A[N/4];
q3 = A[N -1- (N/4)];
}
ll ans = 0;
double IQR = q3-q1;
for(ll i = 0;i<N;i++){
if(A[i] < q1- 1.5 * IQR || A[i] > q3 + 1.5 * IQR){
ans++;
}
}
cout << q1 << " "<<q2 << " "<<q3 << " "<<ans << endl;
// ここにプログラムを追記
}
triangle_coder