Submission #3457165


Source Code Expand

// template version 1.3
// {{{ define basic macro
using namespace std;
#include <iostream>
#include <bits/stdc++.h>
#define _overload3(_1,_2,_3,name,...) name
#define _rep(i,n) repi(i,0,n)
#define repi(i,a,b) for(int i=(int)(a);i<(int)(b);++i)
#define rep(...) _overload3(__VA_ARGS__,repi,_rep,)(__VA_ARGS__)
#define _rrep(i,n) rrepi(i,0,n)
#define rrepi(i,a,b) for(int i=(int)(b-1);i>=(int)(a);--i)
#define rrep(...) _overload3(__VA_ARGS__,rrepi,_rrep,)(__VA_ARGS__)
#define all(x) (x).begin(),(x).end()
#define sum(v) accumulate(all(v), 0LL)
#define sz(x) ((int)(x).size())
#define pb(a) push_back(a)
#define mp(a, b) make_pair(a, b)
#define uni(x) sort(all(x));x.erase(unique(all(x)),x.end())
#define ten(n) ((int)1e##n)
template<class T, size_t N> size_t sza(const T (&array)[N]) { return N; }
template<class T> inline void chmax(T &a, const T &b) { if(a < b) a = b; }
template<class T> inline void chmin(T &a, const T &b) { if(a > b) a = b; }
template<class T=int> T in() {T x; cin>>x; return (x);}

struct Fast {
  Fast(){
    std::cin.tie(0);
    ios::sync_with_stdio(false);
  }
} fast;

// dump macro
#ifdef PCM
  #include "dump.hpp"
#else
  #define dump(...) 42
  #define dump_1d(...) 42
  #define dump_2d(...) 42
#endif

typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef long double ld;
typedef pair<int,int> pii;
typedef tuple<int,int,int> iii;
template<typename T> using PQ = priority_queue<T, vector<T>, greater<T>>;
int dx[]={1, -1, 0, 0};
int dy[]={0, 0, 1, -1};
#define fi first
#define se second

// }}}
// varible setting{{{

#define infile "../test/sample-1.in"
#define int long long
#define INF 1000000000000000000LL
// #define INF 2147483647
#define MOD 1000000007LL

// }}}

int w[1005];
int p[1005];
int n,k;
int W;

bool isright(int x){
  double y[n];
  rep(i, n){
    y[i] = w[i]*(p[i]-x);
  }
  sort(y, y+n);
  reverse(y, y+n);

  double sum = 0;
  rep(i, k){
    sum += y[i];
  }
  if (sum>=0) return false;
  else return true;

}

int solve(){
  cin>>n>>k;
  rep(i, n){
    cin>>w[i]>>p[i];
  }
  W = accumulate(w, w+n, 0LL);

  double left = 0;
  double right = 101;
  rep(i, 100){
    int mid = (right+left)/2;
    if (isright(mid)) { right = mid;}
    else{ left = mid; }
  }
  printf("%.9f", left);

  return 0;
}

signed main() { //{{{
#ifdef INPUT_FROM_FILE
  std::ifstream in(infile);
  std::cin.rdbuf(in.rdbuf());
#endif
  solve();
  return 0;
} //}}}

Submission Info

Submission Time
Task D - 食塩水
User kjnh10
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2417 Byte
Status WA
Exec Time 4 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
AC × 1
WA × 1
AC × 1
WA × 21
Set Name Test Cases
Sample s0.txt, s1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, s0.txt, s1.txt
Case Name Status Exec Time Memory
000.txt WA 4 ms 256 KB
001.txt WA 1 ms 256 KB
002.txt WA 4 ms 256 KB
003.txt WA 1 ms 256 KB
004.txt WA 4 ms 256 KB
005.txt WA 4 ms 256 KB
006.txt WA 4 ms 256 KB
007.txt WA 3 ms 256 KB
008.txt WA 4 ms 256 KB
009.txt WA 1 ms 256 KB
010.txt WA 4 ms 256 KB
011.txt WA 2 ms 256 KB
012.txt WA 4 ms 256 KB
013.txt WA 2 ms 256 KB
014.txt WA 4 ms 256 KB
015.txt WA 3 ms 256 KB
016.txt WA 4 ms 256 KB
017.txt WA 2 ms 256 KB
018.txt WA 4 ms 256 KB
019.txt WA 3 ms 256 KB
s0.txt AC 1 ms 256 KB
s1.txt WA 1 ms 256 KB