답안 #962783

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
962783 2024-04-14T08:11:37 Z simona1230 로봇 (IOI13_robots) C++17
28 / 100
137 ms 18512 KB
#include <bits/stdc++.h>
#include "robots.h"
using namespace std;
int a,b,t,x[50000],y[50000],w[1000000],s[1000000];

bool check(int k)
{
    int idx=t-1;
    for(int i=a-1;i>=0;i--)
    {
        int cnt=0;
        while(idx>=0&&cnt<k&&w[idx]<x[i])
        {
            idx--;
            cnt++;
        }
    }

    if(idx==-1)return 1;
    return 0;
}


int putaway(int A,int B,int T,int X[],int Y[],int W[],int S[])
{
    a=A;
    b=B;
    t=T;
    for(int i=0;i<a;i++)
        x[i]=X[i];
    for(int i=0;i<b;i++)
        y[i]=Y[i];
    for(int i=0;i<t;i++)
        w[i]=W[i],s[i]=S[i];

    sort(x,x+a);
    sort(y,y+b);

    if(a+b==2&&t==2)
    {
        if(a==2)
        {
            sort(w,w+t);
            if(x[0]>w[0]&&x[1]>w[1])return 1;
            if(x[1]>w[1])return 2;
            return -1;
        }

        if(b==2)
        {
            sort(s,s+t);
            if(y[0]>s[0]&&y[1]>s[1])return 1;
            if(y[1]>s[1])return 2;
            return -1;
        }

        if(x[0]>w[0]&&y[0]>s[1]||x[0]>w[1]&&y[0]>s[0])return 1;
        if(x[0]<=w[0]&&y[0]<=s[0]||x[0]<=w[1]&&y[0]<=s[1])return -1;
        return 2;
    }

    if(b==0)
    {
        sort(w,w+t);
        int l=1,r=t;
        int ans=-1;
        while(l<=r)
        {
            int m=(l+r)/2;
            if(check(m))
            {
                ans=m;
                r=m-1;
            }
            else l=m+1;
        }

        return ans;
    }
}


Compilation message

robots.cpp: In function 'int putaway(int, int, int, int*, int*, int*, int*)':
robots.cpp:57:21: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   57 |         if(x[0]>w[0]&&y[0]>s[1]||x[0]>w[1]&&y[0]>s[0])return 1;
      |            ~~~~~~~~~^~~~~~~~~~~
robots.cpp:58:22: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   58 |         if(x[0]<=w[0]&&y[0]<=s[0]||x[0]<=w[1]&&y[0]<=s[1])return -1;
      |            ~~~~~~~~~~^~~~~~~~~~~~
robots.cpp:80:1: warning: control reaches end of non-void function [-Wreturn-type]
   80 | }
      | ^
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 10584 KB Output is correct
2 Correct 2 ms 10588 KB Output is correct
3 Correct 1 ms 10588 KB Output is correct
4 Correct 2 ms 10584 KB Output is correct
5 Correct 2 ms 10588 KB Output is correct
6 Correct 2 ms 10588 KB Output is correct
7 Correct 1 ms 10588 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 10588 KB Output is correct
2 Correct 1 ms 10588 KB Output is correct
3 Correct 2 ms 10584 KB Output is correct
4 Correct 127 ms 12880 KB Output is correct
5 Correct 124 ms 18316 KB Output is correct
6 Correct 20 ms 13656 KB Output is correct
7 Correct 126 ms 18012 KB Output is correct
8 Correct 133 ms 18512 KB Output is correct
9 Correct 137 ms 18268 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 10584 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 10588 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 10584 KB Output isn't correct
2 Halted 0 ms 0 KB -