結果
| 問題 | 
                            No.3331 Consecutive Cubic Sum
                             | 
                    
| コンテスト | |
| ユーザー | 
                             Moss_Local
                         | 
                    
| 提出日時 | 2025-11-02 22:04:16 | 
| 言語 | Rust  (1.83.0 + proconio)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 491 ms / 5,000 ms | 
| コード長 | 4,098 bytes | 
| コンパイル時間 | 14,352 ms | 
| コンパイル使用メモリ | 400,028 KB | 
| 実行使用メモリ | 82,816 KB | 
| 最終ジャッジ日時 | 2025-11-02 22:05:10 | 
| 合計ジャッジ時間 | 40,197 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 47 | 
コンパイルメッセージ
warning: variable does not need to be mutable
   --> src/main.rs:119:9
    |
119 |     let mut vec: Vec<i64> = read_vec();
    |         ----^^^
    |         |
    |         help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` on by default
warning: variable does not need to be mutable
   --> src/main.rs:125:9
    |
125 |     let mut vec: Vec<i64> = read_vec();
    |         ----^^^
    |         |
    |         help: remove this `mut`
warning: variable does not need to be mutable
   --> src/main.rs:130:9
    |
130 |     let mut vec: Vec<usize> = read_vec();
    |         ----^^^
    |         |
    |         help: remove this `mut`
warning: variable does not need to be mutable
   --> src/main.rs:136:9
    |
136 |     let mut vec: Vec<f64> = read_vec();
    |         ----^^^
    |         |
    |         help: remove this `mut`
warning: variable does not need to be mutable
   --> src/main.rs:141:9
    |
141 |     let mut vec: Vec<char> = read_vec();
    |         ----^^^
    |         |
    |         help: remove this `mut`
warning: variable does not need to be mutable
   --> src/main.rs:146:9
    |
146 |     let mut vec: Vec<usize> = read_vec();
    |         ----^^^
    |         |
    |         help: remove this `mut`
warning: variable does not need to be mutable
   --> src/main.rs:152:9
    |
152 |     let mut vec: Vec<i64> = read_vec();
    |         ----^^^
    |         |
    |         help: remove this `mut`
warning: variable does not need to be mutable
   --> src/main.rs:87:17
    |
87  |             let mut set = ::std::collections::BTreeSet::new();
    |                 ----^^^
    |                 |
    |                 help: remove this `mut`
...
158 |     let mut set = set![];
    |                   ------ in this macro invocation
    |
    = note: this warning originates in the macro `set` (in Nightly builds, run with -Z macro-backtrace for more info)
warning: variable does not need to be mutable
   --> src/main.rs:74:17
    |
7
            
            ソースコード
// -*- coding:utf-8-unix -*-
// #![feature(map_first_last)]
#![allow(dead_code)]
#![allow(unused_imports)]
#![allow(unused_macros)]
// use core::num;
use std::cmp::*;
use std::fmt::*;
use std::hash::*;
use std::io::*;
use std::iter::FromIterator;
use std::*;
use std::{cmp, collections, fmt, io, iter, ops, str};
const INF: i64 = 1223372036854775807;
const UINF: usize = INF as usize;
const LINF: i64 = 2147483647;
const INF128: i128 = 1223372036854775807000000000000;
const MOD1: i64 = 1000000007;
const MOD9: i64 = 998244353;
const MOD: i64 = MOD9;
// const MOD: i64 = MOD2;
const UMOD: usize = MOD as usize;
const M_PI: f64 = 3.14159265358979323846;
const NINF: i64 = -(1i64 << 60);
// use proconio::input;
// const MOD: i64 = INF;
use cmp::Ordering::*;
use std::collections::*;
use std::io::stdin;
use std::io::Write;
macro_rules! p {
    ($x:expr) => {
        //if expr
        println!("{}", $x);
    };
}
macro_rules! vp {
    // vector print separate with space
    ($x:expr) => {
        println!(
            "{}",
            $x.iter()
                .map(|x| x.to_string())
                .collect::<Vec<_>>()
                .join(" ")
        );
    };
}
macro_rules! d {
    ($x:expr) => {
        eprintln!("debug:{:?}", $x);
    };
}
macro_rules! yn {
    ($val:expr) => {
        if $val {
            println!("Yes");
        } else {
            println!("No");
        }
    };
}
macro_rules! map{
    // declear btreemap
    ($($key:expr => $val:expr),*) => {
        {
            let mut map = ::std::collections::BTreeMap::new();
            $(
                map.insert($key, $val);
            )*
            map
        }
    };
}
macro_rules! set{
    // declear btreemap
    ($($key:expr),*) => {
        {
            let mut set = ::std::collections::BTreeSet::new();
            $(
                set.insert($key);
            )*
            set
        }
    };
}
//input maskput
#[allow(dead_code)]
fn read<T: std::str::FromStr>() -> T {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    s.trim().parse().ok().unwrap()
}
#[allow(dead_code)]
fn read_vec<T: std::str::FromStr>() -> Vec<T> {
    read::<String>()
        .split_whitespace()
        .map(|e| e.parse().ok().unwrap())
        .collect()
}
#[allow(dead_code)]
fn read_mat<T: std::str::FromStr>(n: u32) -> Vec<Vec<T>> {
    (0..n).map(|_| read_vec()).collect()
}
#[allow(dead_code)]
fn readii() -> (i64, i64) {
    let mut vec: Vec<i64> = read_vec();
    (vec[0], vec[1])
}
#[allow(dead_code)]
fn readiii() -> (i64, i64, i64) {
    let mut vec: Vec<i64> = read_vec();
    (vec[0], vec[1], vec[2])
}
#[allow(dead_code)]
fn readuu() -> (usize, usize) {
    let mut vec: Vec<usize> = read_vec();
    (vec[0], vec[1])
}
#[allow(dead_code)]
fn readff() -> (f64, f64) {
    let mut vec: Vec<f64> = read_vec();
    (vec[0], vec[1])
}
fn readcc() -> (char, char) {
    let mut vec: Vec<char> = read_vec();
    (vec[0], vec[1])
}
fn readuuu() -> (usize, usize, usize) {
    let mut vec: Vec<usize> = read_vec();
    (vec[0], vec[1], vec[2])
}
#[allow(dead_code)]
fn readiiii() -> (i64, i64, i64, i64) {
    let mut vec: Vec<i64> = read_vec();
    (vec[0], vec[1], vec[2], vec[3])
}
fn main() {
    let n: u128 = read();
    let mut set = set![];
    let mut acc_sum = 0u128;
    let mut val_idx = map![];
    set.insert(0);
    val_idx.insert(0, 0);
    for i in 1..1010101 {
        let x = i as u128;
        let v = x.saturating_mul(x).saturating_mul(x);
        acc_sum = acc_sum.saturating_add(v);
        set.insert(acc_sum);
        val_idx.insert(acc_sum, i);
        // if acc_sum == 2025 {
        //     println!("Reached 2025 at i={}", i);
        // }
    }
    let mut ans = vec![];
    for &x in set.iter() {
        if n > x {
            continue;
        }
        let targ = x.saturating_sub(n);
        if set.contains(&targ) {
            let i1 = val_idx[&targ];
            let i2 = val_idx[&x];
            ans.push((i1 + 1, i2));
        }
    }
    p!(ans.len());
    for (a, b) in ans {
        p!(format!("{} {}", a, b));
    }
}
            
            
            
        
            
Moss_Local