Submission #218290

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
2182902020-04-01 20:17:27tatyamTeleporters (IOI08_teleporters)C++17
100 / 100
748 ms40276 KiB
/**
* @brief
* @author
* @see https://qiita.com/rsk0315_h4x/items/17a9cb12e0de5fd918f4
*/
#ifndef H_fast_io
#define H_fast_io
#include <cstddef>
#include <cstdint>
#include <cstdio>
#include <cstring>
#include <limits>
#include <string>
#include <type_traits>
#include <utility>
namespace fast {
static constexpr size_t buf_size = 1 << 17;
static constexpr size_t margin = 1;
static char inbuf[buf_size + margin] = {};
static __attribute__((aligned(8))) char outbuf[buf_size + margin] = {};
static __attribute__((aligned(8))) char minibuf[32];
static constexpr size_t int_digits = 20; // 18446744073709551615
static constexpr uintmax_t digit_mask = 0x3030303030303030;
static constexpr uintmax_t first_mask = 0x00FF00FF00FF00FF;
static constexpr uintmax_t second_mask = 0x0000FFFF0000FFFF;
static constexpr uintmax_t third_mask = 0x00000000FFFFFFFF;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

teleporters.cpp: In function 'int main()':
teleporters.cpp:311:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define rep(a) for(int i = 0; i < a; i++)
                               ~~^~~~~~~~~~
 #define each(i,a) for(auto&& i : a)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 #define all(a) begin(a), end(a)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 
 ~                                
 
 ~                                
 int main(){
 ~~~~~~~~~~~~                     
     fast::scanner cin;
     ~~~~~~~~~~~~~~~~~~~          
     fast::printer cout;
     ~~~~~~~~~~~~~~~~~~~~         
     uint n, m;
     ~~~~~~~~~~~                  
     cin.scan(n, m);
     ~~~~~~~~~~~~~~~~             
     vector<puu> a(n);
     ~~~~~~~~~~~~~~~~~~           
     vector<uint> x;
     ~~~~~~~~~~~~~~~~             
     each(i, a){
     ~~~~~~~~~~~~                 
         cin.scan(i.first, i.second);
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         x.push_back(i.first);
         ~~~~~~~~~~~~~~~~~~~~~~   
         x.push_back(i.second);
         ~~~~~~~~~~~~~~~~~~~~~~~  
     }
     ~~                           
     sort(all(x));
     ~~~~~~~~~~~~~~               
     x.erase(unique(all(x)), x.end());
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     vector<uint> to(n * 2);
     ~~~~~~~~~~~~~~~~~~~~~~~~     
     each(i, a){
     ~~~~~~~~~~~~                 
         i.first = lower_bound(all(x), i.first) - x.begin();
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         i.second = lower_bound(all(x), i.second) - x.begin();
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         to[i.first] = i.second;
         ~~~~~~~~~~~~~~~~~~~~~~~~ 
         to[i.second] = i.first;
         ~~~~~~~~~~~~~~~~~~~~~~~~ 
     }
     ~~                           
     vector<uint> color(n * 2, -1), cnt;
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     uint at = 0, c = 0, ans = 0;
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     while(at != n * 2){
     ~~~~~~~~~~~~~~~~~~~~         
         color[at] = c;
         ~~~~~~~~~~~~~~~          
         ans++;
         ~~~~~~~                  
         at = to[at] + 1;
         ~~~~~~~~~~~~~~~~~        
     }
     ~~                           
     rep(n * 2) if(color[i] == -1){
     ~~~~~~~~~                    
teleporters.cpp:344:5: note: in expansion of macro 'rep'
     rep(n * 2) if(color[i] == -1){
     ^~~
teleporters.cpp:344:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     rep(n * 2) if(color[i] == -1){
teleporters.cpp:347:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while(at != n * 2 && color[at] == -1){
               ~~~^~~~~~~~
teleporters.cpp:347:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while(at != n * 2 && color[at] == -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...
#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...
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...