Submission #1297671

#TimeUsernameProblemLanguageResultExecution timeMemory
1297671ThunnusNicelines (RMI20_nicelines)C++20
0 / 100
1 ms408 KiB
#include "nice_lines.h"
#include<bits/stdc++.h>
#pragma GCC optimize("unroll-loops,O3")
using namespace std;
using i64 = long long;
//#define int i64
#define vi vector<int>
#define vvi vector<vi>
#define vb vector<bool>
#define se second
#define fi first
#define pii pair<int, int>
#define sz(x) (int)(x).size()
#define double long double

const double INF = 2e12;

void solve(int sid, int n){
    i64 lo = -INF, hi = INF, m1, m2;
    int a = INF + 1, b = INF + 1;
    while(hi > lo){
        m1 = lo + (hi - lo) / 3;
        m2 = hi - (hi - lo) / 3;
        double q1 = query(0, m1), q2 = query(0, q2);
        if(q1 == q2){
            b = m1;
            break;
        }
        if(q1 > q2){
            lo = m1 + 1;
        }
        else{
            hi = m2 - 1;
        }
    }
    if(b > INF){
        b = lo;
    }


    int y = 1;
    if(y == b) y++;
    lo = -INF, hi = INF;
    while(hi > lo){
        m1 = lo + (hi - lo) / 3;
        m2 = hi - (hi - lo) / 3;
        double q1 = query(m1, y), q2 = query(m2, y);
        if(q1 == q2){
            a = m1;
            break;
        }
        if(q1 > q2){
            lo = m1 + 1;
        }
        else{
            hi = m2 - 1;
        }
    }
    if(a > INF){
        a = lo;
    }

    int slope = (a - b) / (y - 0);
    vi av, bv;
    av.emplace_back(slope), bv.emplace_back(b);
    the_lines_are(av, bv);
    return;
}

Compilation message (stderr)

nicelines.cpp: In function 'void solve(int, int)':
nicelines.cpp:20:17: warning: overflow in conversion from 'long double' to 'int' changes value from '2.000000000001e+12l' to '2147483647' [-Woverflow]
   20 |     int a = INF + 1, b = INF + 1;
      |             ~~~~^~~
nicelines.cpp:20:30: warning: overflow in conversion from 'long double' to 'int' changes value from '2.000000000001e+12l' to '2147483647' [-Woverflow]
   20 |     int a = INF + 1, b = INF + 1;
      |                          ~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...