Submission #1696279
Source Code Expand
package main
import (
"bufio"
"fmt"
"log"
"os"
"strconv"
)
const abcd = "abcdefghijklmnopqrstuvwxyz"
// const ABCD = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
// var dy = [...]int{1, 1, 0, -1, -1, -1, 0, 1}
// var dx = [...]int{0, 1, 1, 1, 0, -1, -1, -1}
// var dx = [...]int{0, 1, 0, -1}
// var dy = [...]int{1, 0, -1, 0}
var inf int = 1e13
var mod = 1000000007
// ---------------------------------------------------------
func main() {
log.SetFlags(log.Lshortfile)
next := newScanner()
s := next.next()
k := next.Int()
ans := make([]byte, len(s))
for i := 0; i < len(s); i++ {
if s[i] == 'a' {
ans[i] = 'a'
continue
}
if int('z'-s[i]+1) <= k {
k -= int('z' - s[i] + 1)
ans[i] = 'a'
} else {
ans[i] = s[i]
}
}
log.Println(k)
n := int(ans[len(s)-1] - 'a')
n = (n + k) % len(abcd)
log.Println(n)
ans[len(s)-1] = abcd[n]
fmt.Println(string(ans))
}
// ---------------------------------------------------------
// Pair is liked C++ pair
type Pair struct {
a, b int
}
// Pairs is sorted by []Pair struct
type Pairs []Pair
func (p Pairs) Len() int {
return len(p)
}
func (p Pairs) Swap(i, j int) {
p[i], p[j] = p[j], p[i]
}
func (p Pairs) Less(i, j int) bool {
if p[i].a < p[j].a {
return true
} else if p[i].a == p[j].a {
return p[i].b < p[j].b
}
return false
}
// -------------------------------
func in(c, a, z int) bool {
return c >= a && c < z
}
func btoi(b bool) int {
if b {
return 1
}
return 0
}
func itob(a int) bool {
if a == 0 {
return false
}
return true
}
func max(a ...int) int {
r := a[0]
for i := 0; i < len(a); i++ {
if r < a[i] {
r = a[i]
}
}
return r
}
func sum(a ...int) int {
r := a[0]
if len(a) > 1 {
for i := 1; i < len(a); i++ {
r += a[i]
}
}
return r
}
func min(a ...int) int {
r := a[0]
for i := 0; i < len(a); i++ {
if r > a[i] {
r = a[i]
}
}
return r
}
func minmax(a, b int) (int, int) {
if a > b {
return b, a
}
return a, b
}
func abs(a int) int {
if a < 0 {
return -a
}
return a
}
// ---------- buffered scanner -----------------------------------------
type scanner struct {
r *bufio.Reader
buf []byte
p int
}
func newScanner() *scanner {
rdr := bufio.NewReaderSize(os.Stdin, 10000)
return &scanner{r: rdr}
}
func (s *scanner) next() string {
s.pre()
start := s.p
for ; s.p < len(s.buf); s.p++ {
if s.buf[s.p] == ' ' {
break
}
}
result := string(s.buf[start:s.p])
s.p++
return result
}
func (s *scanner) Line() string {
s.pre()
start := s.p
s.p = len(s.buf)
return string(s.buf[start:])
}
func (s *scanner) Int() int {
v, _ := strconv.Atoi(s.next())
return v
}
func (s *scanner) Int64() int64 {
v, _ := strconv.ParseInt(s.next(), 10, 64)
return v
}
func (s *scanner) pre() {
if s.p >= len(s.buf) {
s.readLine()
s.p = 0
}
}
func (s *scanner) readLine() {
s.buf = make([]byte, 0)
for {
l, p, e := s.r.ReadLine()
if e != nil {
panic(e)
}
s.buf = append(s.buf, l...)
if !p {
break
}
}
}
Submission Info
Submission Time |
|
Task |
C - Next Letter |
User |
fmhr |
Language |
Go (1.6) |
Score |
400 |
Code Size |
3178 Byte |
Status |
AC |
Exec Time |
3 ms |
Memory |
1536 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
400 / 400 |
Status |
|
|
Set Name |
Test Cases |
Sample |
0_00.txt, 0_01.txt, 0_02.txt |
All |
0_00.txt, 0_01.txt, 0_02.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt |
Case Name |
Status |
Exec Time |
Memory |
0_00.txt |
AC |
1 ms |
640 KB |
0_01.txt |
AC |
1 ms |
640 KB |
0_02.txt |
AC |
1 ms |
640 KB |
1_00.txt |
AC |
1 ms |
640 KB |
1_01.txt |
AC |
1 ms |
640 KB |
1_02.txt |
AC |
1 ms |
640 KB |
1_03.txt |
AC |
1 ms |
640 KB |
1_04.txt |
AC |
1 ms |
640 KB |
1_05.txt |
AC |
1 ms |
640 KB |
1_06.txt |
AC |
2 ms |
1536 KB |
1_07.txt |
AC |
3 ms |
1536 KB |
1_08.txt |
AC |
3 ms |
1408 KB |
1_09.txt |
AC |
3 ms |
1408 KB |
1_10.txt |
AC |
3 ms |
1536 KB |
1_11.txt |
AC |
2 ms |
1408 KB |
1_12.txt |
AC |
2 ms |
1408 KB |
1_13.txt |
AC |
2 ms |
1408 KB |
1_14.txt |
AC |
3 ms |
1408 KB |
1_15.txt |
AC |
2 ms |
1408 KB |
1_16.txt |
AC |
3 ms |
1408 KB |
1_17.txt |
AC |
3 ms |
1408 KB |
1_18.txt |
AC |
3 ms |
1408 KB |
1_19.txt |
AC |
3 ms |
1536 KB |
1_20.txt |
AC |
2 ms |
1408 KB |
1_21.txt |
AC |
3 ms |
1536 KB |
1_22.txt |
AC |
3 ms |
1408 KB |
1_23.txt |
AC |
3 ms |
1408 KB |