Блог пользователя BanazadehAria

Автор BanazadehAria, история, 5 лет назад, По-английски

Hi,

There is no editorial for problem 734C ==> http://mirror.codeforces.com/problemset/problem/734/C

Please give me some hint.

Thanks in advance :(

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
5 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Binary search

  • »
    »
    5 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    I am not blind I can see the tag dude :(

    Please Give more detail.

    • »
      »
      »
      5 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      • »
        »
        »
        »
        5 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Thanks, Where you found it?

      • »
        »
        »
        »
        5 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
        #include<bits/stdc++.h>
        using namespace std;
        
        const int MAXN = 2*1e5+5;
        int pricefirst[MAXN],pricesecond[MAXN],firsts[MAXN],seconds[MAXN];
        const int INF = 1e9+7;
        
        bool ok(int cap,int needed){
            return (cap>=needed);
        }
        
        int main()
        {
            int n,first,second;cin >> n >> first >> second;
            int time,cap;cin >> time >> cap;
            for(int i=0;i<first;++i) cin >> firsts[i];
            for(int i=0;i<first;++i) cin >> pricefirst[i];
            for(int i=0;i<second;++i) cin >> seconds[i];
            for(int i=0;i<second;++i) cin>> pricesecond[i];
        
            // We fix the a potion from type first
        
            int mins = time*n;
        
            for(int i=0;i<first;++i){
                int capnow = cap-pricefirst[i];
                if(capnow<=0 || !ok(capnow,pricesecond[0])) continue;
                int l=0,r=second;
                while((r-l)>1){
                    int mid = l + (r-l)/2;
                    if(ok(capnow,pricesecond[mid])){
                        l=mid;
                    }else r=mid;
                }
                int res = (n-seconds[l])*firsts[i];
                mins = min(mins,res);
            }
            cout << mins;
        }
        

        rotavirus can you see what is the problem with it?? I got WA on test case 3.