| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 392522 | nicolaalexandra | Highway design (CEOI12_highway) | C++14 | 1 ms | 588 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "office.h"
using namespace std;
int n,i;
/*int GetN(){
    int x;
    cin>>x;
    return x;
}
void Answer(int x, int y, int x2, int y2){
    cout<<x<<" "<<y<<"\n"<<x2<<" "<<y2;
}
int isOnLine (int x, int y, int z){
    int ans;
    cout<<"? "<<x<<" "<<y<<" "<<z<<"\n";
    cin>>ans;
    return ans;
}
*/
int main (){
    n = GetN();
    int ok = isOnLine(1,2,3);
    if (ok){
        /// trb sa gasesc doua puncte care nu sunt pe dreapta asta
        int sol = 0, sol2 = 0;
        for (i=4;i<n;i+=2){
            int ok2 = isOnLine(3,i,i+1);
            if (!ok2){
                if (!isOnLine(2,3,i)){
                    if (!sol)
                        sol = i;
                    else {
                        if (!sol2)
                            sol2 = i;
                    }}
                if (!isOnLine(2,3,i+1)){
                    if (!sol)
                        sol = i+1;
                    else {
                        if (!sol2)
                            sol2 = i+1;
                    }}}
            if (sol && sol2)
                break;
        }
        Answer(1,2,sol,sol2);
        return 0;
    }
    int ok2 = isOnLine(4,5,6);
    if (ok2){ /// e acelasi caz ca mai sus
        int sol = 0, sol2 = 0;
        for (i=1;i<n;i+=2){
            if (i == 3 || i == 4 || i == 5 || i == 6)
                continue;
            int ok3 = isOnLine(4,i,i+1);
            if (!ok3){
                if (!isOnLine(4,5,i)){
                    if (!sol)
                        sol = i;
                    else {
                        if (!sol2)
                            sol2 = i;
                    }
                }
                if (!isOnLine(4,5,i+1)){
                    if (!sol)
                        sol = i+1;
                    else {
                        if (!sol2)
                            sol2 = i+1;
                    }}}
            if (sol && sol2)
                break;
        }
        Answer(4,5,sol,sol2);
        return 0;
    }
    if (isOnLine(1,2,4)){
        if (isOnLine(1,2,5))
            Answer(1,2,3,6);
        else Answer(1,2,3,5);
        return 0;
    }
    if (isOnLine(1,2,5)){
        if (isOnLine(1,2,4))
            Answer(1,2,3,6);
        else Answer(1,2,3,4);
        return 0;
    }
    if (isOnLine(1,2,6)){
        if (isOnLine(1,2,4))
            Answer(1,2,3,5);
        else Answer(1,2,3,4);
        return 0;
    }
    if (isOnLine(1,3,4)){
        if (isOnLine(1,3,5))
            Answer(1,3,2,6);
        else Answer(1,3,2,5);
        return 0;
    }
    if (isOnLine(1,3,5)){
        if (isOnLine(1,3,4))
            Answer(1,3,2,6);
        else Answer(1,3,2,4);
        return 0;
    }
    if (isOnLine(1,3,6)){
        if (isOnLine(1,3,4))
            Answer(1,3,2,5);
        else Answer(1,3,2,4);
        return 0;
    }
    if (isOnLine(2,3,4)){
        if (isOnLine(2,3,5))
            Answer(2,3,1,6);
        else Answer(2,3,1,5);
        return 0;
    }
    if (isOnLine(2,3,5)){
        if (isOnLine(2,3,4))
            Answer(2,3,1,6);
        else Answer(2,3,1,4);
        return 0;
    }
    if (isOnLine(2,3,6)){
        if (isOnLine(2,3,4))
            Answer(2,3,1,5);
        else Answer(2,3,1,4);
    }
    return 0;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
