complete 2399.rs and rename storage/zeta/rust to rs
This commit is contained in:
4
run.py
4
run.py
@@ -203,13 +203,15 @@ def run(from_: str, target: str, verbose: bool):
|
|||||||
# build
|
# build
|
||||||
|
|
||||||
try:
|
try:
|
||||||
subprocess.run(
|
s = subprocess.run(
|
||||||
from_language.build_command,
|
from_language.build_command,
|
||||||
check=True,
|
check=True,
|
||||||
capture_output=True,
|
capture_output=True,
|
||||||
text=True,
|
text=True,
|
||||||
cwd=from_language.working_dir,
|
cwd=from_language.working_dir,
|
||||||
)
|
)
|
||||||
|
print(s.stderr)
|
||||||
|
|
||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
click.echo(">>>>>> [Error while BUILD process] >>>>>>")
|
click.echo(">>>>>> [Error while BUILD process] >>>>>>")
|
||||||
raise click.ClickException(e.stderr)
|
raise click.ClickException(e.stderr)
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ use std::fs;
|
|||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
println!("cargo::rerun-if-changed=src/main.rs");
|
||||||
|
// TODO: change to always execute build.rs
|
||||||
let target_dir = env::var("CARGO_TARGET_DIR").unwrap_or_else(|_| "target".to_string());
|
let target_dir = env::var("CARGO_TARGET_DIR").unwrap_or_else(|_| "target".to_string());
|
||||||
let profile = env::var("PROFILE").unwrap();
|
let profile = env::var("PROFILE").unwrap();
|
||||||
let exe_name = env::var("CARGO_PKG_NAME").unwrap();
|
let exe_name = env::var("CARGO_PKG_NAME").unwrap();
|
||||||
@@ -11,8 +13,12 @@ fn main() {
|
|||||||
|
|
||||||
let target_path = Path::new(&target_dir).join(&profile).join(&exe_name);
|
let target_path = Path::new(&target_dir).join(&profile).join(&exe_name);
|
||||||
let dest_path = Path::new("../../build").join("rs.out");
|
let dest_path = Path::new("../../build").join("rs.out");
|
||||||
|
println!("cargo::warning={}", exe_name);
|
||||||
if target_path.exists() {
|
if target_path.exists() {
|
||||||
fs::copy(&target_path, &dest_path).expect("Failed to copy executable");
|
println!("cargo::warning=copy to {:#?}", dest_path);
|
||||||
|
match fs::copy(&target_path, &dest_path) {
|
||||||
|
Ok(_) => println!("cargo::warning=copy success"),
|
||||||
|
Err(_) => println!("cargo::warning=copy failed"),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
29
storage/zeta/rs/completed/2399.rs
Normal file
29
storage/zeta/rs/completed/2399.rs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
use std::io;
|
||||||
|
use std::io::Write;
|
||||||
|
|
||||||
|
fn mutual_difference(v: &Vec<i64>) -> i64 {
|
||||||
|
let mut s: i64 = 0;
|
||||||
|
for a in v {
|
||||||
|
for b in v {
|
||||||
|
s += (a - b).abs();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let stdout = io::stdout();
|
||||||
|
let mut out = io::BufWriter::new(stdout.lock());
|
||||||
|
|
||||||
|
let mut line = String::new();
|
||||||
|
let mut _trash = String::new();
|
||||||
|
io::stdin().read_line(&mut _trash).expect("err");
|
||||||
|
io::stdin().read_line(&mut line).expect("err");
|
||||||
|
|
||||||
|
let v = line
|
||||||
|
.trim()
|
||||||
|
.split(' ')
|
||||||
|
.map(|it| it.parse::<i64>().unwrap())
|
||||||
|
.collect::<Vec<i64>>();
|
||||||
|
writeln!(out, "{}", mutual_difference(&v)).expect("err");
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user