プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part14
http://mevius.5ch.net/test/read.cgi/tech/1558168409/
プログラミングのお題スレ Part15
■ このスレッドは過去ログ倉庫に格納されています
2019/07/28(日) 19:39:57.54ID:832c/ukY
505デフォルトの名無しさん
2019/09/21(土) 00:39:37.54ID:6wFtRpPA >>504 Perl5
$h{$_}++ for qw{Hoge Fuga Foo Fuga Foo Hoge Bar Fuga};
print "$_ $h{$_}\n" for keys %h;
実行結果
~ $ perl 15_504.pl
Fuga 3
Hoge 2
Bar 1
Foo 2
$h{$_}++ for qw{Hoge Fuga Foo Fuga Foo Hoge Bar Fuga};
print "$_ $h{$_}\n" for keys %h;
実行結果
~ $ perl 15_504.pl
Fuga 3
Hoge 2
Bar 1
Foo 2
506デフォルトの名無しさん
2019/09/21(土) 00:45:45.24ID:Ei1MM/mp507デフォルトの名無しさん
2019/09/21(土) 00:46:28.49ID:YPz6oCKs >>504
cat text
Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga
cat text | perl -ne '$dirs{ s/\R//r } += 1; END{for $key (keys %dirs) {printf "%-4s %s\n", $key, $dirs{$key} } }'
Foo 2
Fuga 3
Bar 1
Hoge 2
cat text
Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga
cat text | perl -ne '$dirs{ s/\R//r } += 1; END{for $key (keys %dirs) {printf "%-4s %s\n", $key, $dirs{$key} } }'
Foo 2
Fuga 3
Bar 1
Hoge 2
508デフォルトの名無しさん
2019/09/21(土) 00:50:19.09ID:Ei1MM/mp うほっ。C++のunordered_mapはオーダー要求しないから、そこを使って最適化物故むとかやるんかいな。
VCとGCCと挙動違う。
VCとGCCと挙動違う。
509デフォルトの名無しさん
2019/09/21(土) 00:59:47.45ID:6wFtRpPA >>496 Perl5
sub f {$_[0] =~ /(\d+)/; $1};
print sort{ f($a) <=> f($b) } <DATA>;
__DATA__
a b c 44
x y 33
z 22
11
実行結果
~ $ perl 15_496.pl
11
z 22
x y 33
a b c 44
sub f {$_[0] =~ /(\d+)/; $1};
print sort{ f($a) <=> f($b) } <DATA>;
__DATA__
a b c 44
x y 33
z 22
11
実行結果
~ $ perl 15_496.pl
11
z 22
x y 33
a b c 44
510デフォルトの名無しさん
2019/09/21(土) 04:32:25.24ID:DxluyDWg511デフォルトの名無しさん
2019/09/21(土) 05:21:21.47ID:DxluyDWg512デフォルトの名無しさん
2019/09/21(土) 05:37:07.36ID:RmdAWOHY513デフォルトの名無しさん
2019/09/21(土) 15:59:00.83ID:uZ0K83Mw >>496 ruby
https://ideone.com/VtI7C7
puts readlines.sort_by {|s| s[/\d+$/].to_i}
>>504 ruby
https://ideone.com/Sw6k17
puts $<.read.scan(/\w+/).group_by(&:itself).map {|a, b| '%s %d' % [a, b.size]}
https://ideone.com/VtI7C7
puts readlines.sort_by {|s| s[/\d+$/].to_i}
>>504 ruby
https://ideone.com/Sw6k17
puts $<.read.scan(/\w+/).group_by(&:itself).map {|a, b| '%s %d' % [a, b.size]}
514デフォルトの名無しさん
2019/09/21(土) 16:12:27.45ID:ZyFDPzPp お題:正の整数が与えられるので、英語の序数に変換せよ
1 => 1st
23 => 23rd
12 => 12th
1 => 1st
23 => 23rd
12 => 12th
515デフォルトの名無しさん
2019/09/21(土) 16:40:16.71ID:6wFtRpPA >>514 Perl5
%o = qw{1 st 2 nd 3 rd};
$o = $o{$_}//'th', print "$_$o\n" for 1..10,12,23;
実行
~ $ perl 15_514.pl
1st
2nd
3rd
4th
5th
6th
7th
8th
9th
10th
12th
23th
%o = qw{1 st 2 nd 3 rd};
$o = $o{$_}//'th', print "$_$o\n" for 1..10,12,23;
実行
~ $ perl 15_514.pl
1st
2nd
3rd
4th
5th
6th
7th
8th
9th
10th
12th
23th
516デフォルトの名無しさん
2019/09/21(土) 16:54:30.22ID:6wFtRpPA517デフォルトの名無しさん
2019/09/21(土) 17:38:27.55ID:uZ0K83Mw518デフォルトの名無しさん
2019/09/21(土) 18:24:27.24ID:9SoaGQ4l519デフォルトの名無しさん
2019/09/21(土) 19:12:36.02ID:AojYT9zq 1st 2nd 3rd
11th 12th 13th
21st 22nd 23rd
101st 102nd 103rd
111th 112th 113th
121st 122nd 123rd
皆さんここらへん大丈夫?
11th 12th 13th
21st 22nd 23rd
101st 102nd 103rd
111th 112th 113th
121st 122nd 123rd
皆さんここらへん大丈夫?
520デフォルトの名無しさん
2019/09/21(土) 19:41:28.17ID:6wFtRpPA >>514 Perl5、>>519 で指摘された誤りの修正 テヘペロ
%h = qw{1 st 2 nd 3 rd};
for (1..4,11,12,13,21,22,23,101,102,103,111,112,113,121,122,123) {
/(\d?)(\d)$/;
printf "$_ => $_%s\n", $1 eq 1 ? 'th' : $h{$2}//'th';
}
実行結果
~ $ perl 15_514.pl
1 => 1st
2 => 2nd
3 => 3rd
4 => 4th
11 => 11th
12 => 12th
13 => 13th
21 => 21st
22 => 22nd
23 => 23rd
101 => 101st
102 => 102nd
103 => 103rd
111 => 111th
112 => 112th
113 => 113th
121 => 121st
122 => 122nd
123 => 123rd
%h = qw{1 st 2 nd 3 rd};
for (1..4,11,12,13,21,22,23,101,102,103,111,112,113,121,122,123) {
/(\d?)(\d)$/;
printf "$_ => $_%s\n", $1 eq 1 ? 'th' : $h{$2}//'th';
}
実行結果
~ $ perl 15_514.pl
1 => 1st
2 => 2nd
3 => 3rd
4 => 4th
11 => 11th
12 => 12th
13 => 13th
21 => 21st
22 => 22nd
23 => 23rd
101 => 101st
102 => 102nd
103 => 103rd
111 => 111th
112 => 112th
113 => 113th
121 => 121st
122 => 122nd
123 => 123rd
521さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/09/21(土) 20:51:54.21ID:BmADEcuL お題: 与えられた西暦年月日を年号年月日に変換しなさい。ただし、変換するのは大正時代から令和までとし、範囲外であればERRORを表示しなさい。
522さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/09/21(土) 21:04:33.10ID:BmADEcuL お題: YYYY/MM/DD形式で与えられた西暦年月日の文字列が正しい年月日を表しているかどうか判定せよ。
523蟻人間 ◆T6xkBnTXz7B0
2019/09/21(土) 21:24:10.22ID:BmADEcuL524デフォルトの名無しさん
2019/09/21(土) 22:12:07.89ID:y97V3EOz >>522 Perl5
use Time::Piece;
for (<DATA>) {
chomp;
my $t;
eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
$t //= 'Invalid';
print "$_: $t\n";
}
__DATA__
1970/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29
0000/13/32
実行結果
1970/01/05: Mon Jan 5 00:00:00 1970
1990/12/31: Mon Dec 31 00:00:00 1990
2019/04/28: Sun Apr 28 00:00:00 2019
2019/05/01: Wed May 1 00:00:00 2019
1920/02/29: Sun Feb 29 00:00:00 1920
0000/13/32: Invalid
use Time::Piece;
for (<DATA>) {
chomp;
my $t;
eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
$t //= 'Invalid';
print "$_: $t\n";
}
__DATA__
1970/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29
0000/13/32
実行結果
1970/01/05: Mon Jan 5 00:00:00 1970
1990/12/31: Mon Dec 31 00:00:00 1990
2019/04/28: Sun Apr 28 00:00:00 2019
2019/05/01: Wed May 1 00:00:00 2019
1920/02/29: Sun Feb 29 00:00:00 1920
0000/13/32: Invalid
525524
2019/09/21(土) 22:29:42.44ID:y97V3EOz526デフォルトの名無しさん
2019/09/21(土) 22:37:53.07ID:tuxPF//K527蟻人間 ◆T6xkBnTXz7B0
2019/09/21(土) 22:44:04.41ID:7nrsNPcd 令和1年を令和元年にしないといけないという落とし穴があるようだ。
528デフォルトの名無しさん
2019/09/21(土) 22:45:06.50ID:Awwp+36u >>504 Ruby
p $<.map(&:chomp).yield_self{|e| e.uniq.map{|v| [v, e.count(v)]}}
# => [["Hoge", 2], ["Fuga", 3], ["Foo", 2], ["Bar", 1]]
p $<.map(&:chomp).yield_self{|e| e.uniq.map{|v| [v, e.count(v)]}}
# => [["Hoge", 2], ["Fuga", 3], ["Foo", 2], ["Bar", 1]]
529デフォルトの名無しさん
2019/09/21(土) 23:03:57.96ID:tuxPF//K530デフォルトの名無しさん
2019/09/22(日) 01:12:38.88ID:35++XhB6 >>496 Squeak Smalltalk
#('a b c 44' 'x y 33' 'z 22' '11') sortBy: [:x | x splitInteger last] ascending
"=> an OrderedCollection('11' 'z 22' 'x y 33' 'a b c 44') "
#('a b c 44' 'x y 33' 'z 22' '11') sortBy: [:x | x splitInteger last] ascending
"=> an OrderedCollection('11' 'z 22' 'x y 33' 'a b c 44') "
531デフォルトの名無しさん
2019/09/22(日) 01:25:15.35ID:35++XhB6 >>504 Pharo/Squeak Smalltalk
'Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga' lines asBag sortedElements
"=> {'Bar'->1 . 'Foo'->2 . 'Fuga'->3 . 'Hoge'->2} "
'Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga' lines asBag sortedElements
"=> {'Bar'->1 . 'Foo'->2 . 'Fuga'->3 . 'Hoge'->2} "
532デフォルトの名無しさん
2019/09/22(日) 01:56:51.52ID:35++XhB6 >>467 Pharo/Squeak Smalltalk
| fn |
fn := [:str | String streamContents: [:ss |
(str as: RunArray) runsAndValuesDo: [:n :x |
ss nextPut: x; nextPutAll: (n = 1 ifTrue: [''] ifFalse: [n asString])
]
]].
fn value: 'あいうえお'. "=> 'あいうえお' "
fn value: 'ああいいうう'. "=> 'あ2い2う2' "
fn value: 'あいうあいう'. "=> 'あいうあいう' "
| fn |
fn := [:str | String streamContents: [:ss |
(str as: RunArray) runsAndValuesDo: [:n :x |
ss nextPut: x; nextPutAll: (n = 1 ifTrue: [''] ifFalse: [n asString])
]
]].
fn value: 'あいうえお'. "=> 'あいうえお' "
fn value: 'ああいいうう'. "=> 'あ2い2う2' "
fn value: 'あいうあいう'. "=> 'あいうあいう' "
533デフォルトの名無しさん
2019/09/22(日) 08:19:31.82ID:uuB9aO9i >>514 Ruby
suffixes = %w[th st nd rd]
f = -> n {(-(-((n - 10) / 10 % 10) / 9)) * 41 / (n % 10 * 10 + 11) * (n % 10)}
[
1, 2, 3, 4, 11, 12, 13, 21, 22, 23, 101, 102, 103, 111, 112, 113, 121, 122, 123
].each{|v| puts '%1$d => %1$d%2$s' % [v, suffixes[f[v]]]}
# =>
1 => 1st
2 => 2nd
3 => 3rd
4 => 4th
11 => 11th
12 => 12th
13 => 13th
21 => 21st
22 => 22nd
23 => 23rd
101 => 101st
102 => 102nd
103 => 103rd
111 => 111th
112 => 112th
113 => 113th
121 => 121st
122 => 122nd
123 => 123rd
suffixes = %w[th st nd rd]
f = -> n {(-(-((n - 10) / 10 % 10) / 9)) * 41 / (n % 10 * 10 + 11) * (n % 10)}
[
1, 2, 3, 4, 11, 12, 13, 21, 22, 23, 101, 102, 103, 111, 112, 113, 121, 122, 123
].each{|v| puts '%1$d => %1$d%2$s' % [v, suffixes[f[v]]]}
# =>
1 => 1st
2 => 2nd
3 => 3rd
4 => 4th
11 => 11th
12 => 12th
13 => 13th
21 => 21st
22 => 22nd
23 => 23rd
101 => 101st
102 => 102nd
103 => 103rd
111 => 111th
112 => 112th
113 => 113th
121 => 121st
122 => 122nd
123 => 123rd
534デフォルトの名無しさん
2019/09/22(日) 08:57:02.33ID:yY5QhyPL >>533
ruby知らんけどそのfって何?
ruby知らんけどそのfって何?
535デフォルトの名無しさん
2019/09/22(日) 09:05:16.49ID:8u0YwnlN ラムダ式じゃねーの
おれもruby知らんが
おれもruby知らんが
536デフォルトの名無しさん
2019/09/22(日) 09:16:58.95ID:W3ewN8v1 (dolist (n (list 1 2 3 11 12 13 21 22 23 101 102 103 111 112 113 121 122 123) ) (format t "~:R~%" n))
first
second
third
eleventh
twelfth
thirteenth
twenty-first
twenty-second
twenty-third
one hundred first
one hundred second
one hundred third
one hundred eleventh
one hundred twelfth
one hundred thirteenth
one hundred twenty-first
one hundred twenty-second
one hundred twenty-third
first
second
third
eleventh
twelfth
thirteenth
twenty-first
twenty-second
twenty-third
one hundred first
one hundred second
one hundred third
one hundred eleventh
one hundred twelfth
one hundred thirteenth
one hundred twenty-first
one hundred twenty-second
one hundred twenty-third
537デフォルトの名無しさん
2019/09/22(日) 09:21:41.49ID:uuB9aO9i >>534-535
ラムダ式.
任意の自然数 n に対して次の式は n の序数詞の末尾が th なら 0, st なら 1, nd なら 2, rd なら 3 を返す.(除算は切り捨て)
(-(-((n - 10) / 10 % 10) / 9)) * 41 / (n % 10 * 10 + 11) * (n % 10)
ラムダ式.
任意の自然数 n に対して次の式は n の序数詞の末尾が th なら 0, st なら 1, nd なら 2, rd なら 3 を返す.(除算は切り捨て)
(-(-((n - 10) / 10 % 10) / 9)) * 41 / (n % 10 * 10 + 11) * (n % 10)
538デフォルトの名無しさん
2019/09/22(日) 10:14:00.13ID:UtdvR7ZT >>514 Lua
function f(n)
local r,x
x=n%10
if n%100-x==10 or x<1 or x>3 then
r="th"
else
r=({"st","nd","rd"})[x]
end
return n..r
end
function f(n)
local r,x
x=n%10
if n%100-x==10 or x<1 or x>3 then
r="th"
else
r=({"st","nd","rd"})[x]
end
return n..r
end
539デフォルトの名無しさん
2019/09/22(日) 11:43:05.12ID:OEThTvH6540デフォルトの名無しさん
2019/09/22(日) 11:51:21.39ID:OEThTvH6 >>522, >>521 JavaScript
const isValid = seireki => {
let check
try {
check = new Intl
.DateTimeFormat('ja-JP', {year: 'numeric', month: '2-digit', day: '2-digit'})
.format(new Date(seireki))
} catch (e) { return false }
return seireki === check ? true : false
}
const seirekiToWareki = seireki => {
if (!isValid(seireki)) return 'ERROR'
const wareki = new Intl
.DateTimeFormat('ja-JP-u-ca-japanese', {era: 'long', year: 'numeric', month: 'numeric', day: 'numeric'})
.format(new Date(seireki))
.replace(/(正|和|成)1(年)/, '$1元$2')
return ['大正', '昭和', '平成', '令和'].includes(wareki.slice(0, 2)) ? wareki : 'ERROR'
}
`1979/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29
0000/13/32`
.split`\n`.forEach(seireki => {console.log(seirekiToWareki(seireki))})
実行結果:
昭和54年1月5日
平成2年12月31日
平成31年4月28日
令和元年5月1日
大正9年2月29日
ERROR
const isValid = seireki => {
let check
try {
check = new Intl
.DateTimeFormat('ja-JP', {year: 'numeric', month: '2-digit', day: '2-digit'})
.format(new Date(seireki))
} catch (e) { return false }
return seireki === check ? true : false
}
const seirekiToWareki = seireki => {
if (!isValid(seireki)) return 'ERROR'
const wareki = new Intl
.DateTimeFormat('ja-JP-u-ca-japanese', {era: 'long', year: 'numeric', month: 'numeric', day: 'numeric'})
.format(new Date(seireki))
.replace(/(正|和|成)1(年)/, '$1元$2')
return ['大正', '昭和', '平成', '令和'].includes(wareki.slice(0, 2)) ? wareki : 'ERROR'
}
`1979/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29
0000/13/32`
.split`\n`.forEach(seireki => {console.log(seirekiToWareki(seireki))})
実行結果:
昭和54年1月5日
平成2年12月31日
平成31年4月28日
令和元年5月1日
大正9年2月29日
ERROR
541デフォルトの名無しさん
2019/09/22(日) 14:55:10.69ID:yzO2ACAf >>521-523 Perl5
use Time::Piece; #use Data::Dump 'dump';
@fy = (['2019/05/01', '令和'], ['1989/01/08', '平成'], ['1926/12/25', '昭和'], ['1912/07/30', '大正']);
$$_[0] = Time::Piece->strptime($$_[0], '%Y/%m/%d') for @fy;
for (qw{1970/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 1912/07/29 2019/02/29}) {
my ($t, $t0, $era, $nen);
eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
if ($t and $t->strftime('%Y/%m/%d') eq $_) {
do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy;
if ($t0) {
$nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年' if $t0;
$t = "$era$nen".$t->mon.'月'.$t->mday.'日';
} else {
$t = 'ERROR';
}
} else {
$t = 'Invalid';
}
print "$_: $t\n";
}
実行結果
~ $ perl 15_521.pl
1970/01/05: 昭和45年1月5日
1990/12/31: 平成2年12月31日
2019/04/28: 平成31年4月28日
2019/05/01: 令和元年5月1日
1920/02/29: 大正9年2月29日
1912/07/29: ERROR
2019/02/29: Invalid
use Time::Piece; #use Data::Dump 'dump';
@fy = (['2019/05/01', '令和'], ['1989/01/08', '平成'], ['1926/12/25', '昭和'], ['1912/07/30', '大正']);
$$_[0] = Time::Piece->strptime($$_[0], '%Y/%m/%d') for @fy;
for (qw{1970/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 1912/07/29 2019/02/29}) {
my ($t, $t0, $era, $nen);
eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
if ($t and $t->strftime('%Y/%m/%d') eq $_) {
do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy;
if ($t0) {
$nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年' if $t0;
$t = "$era$nen".$t->mon.'月'.$t->mday.'日';
} else {
$t = 'ERROR';
}
} else {
$t = 'Invalid';
}
print "$_: $t\n";
}
実行結果
~ $ perl 15_521.pl
1970/01/05: 昭和45年1月5日
1990/12/31: 平成2年12月31日
2019/04/28: 平成31年4月28日
2019/05/01: 令和元年5月1日
1920/02/29: 大正9年2月29日
1912/07/29: ERROR
2019/02/29: Invalid
542デフォルトの名無しさん
2019/09/22(日) 14:59:46.00ID:yzO2ACAf543デフォルトの名無しさん
2019/09/22(日) 15:13:26.78ID:yzO2ACAf544デフォルトの名無しさん
2019/09/22(日) 16:19:32.48ID:iYBBHKU1 https://github.com/systemd/systemd/blob/82d1264048a3768fb8238387810f78c5d3912058/src/journal/journalctl.c#L2405-L2461
このif elseの羅列をリファクタリングしてください(´・ω・`)
このif elseの羅列をリファクタリングしてください(´・ω・`)
545デフォルトの名無しさん
2019/09/22(日) 17:24:37.46ID:W3ewN8v1 無駄に否定演算子で分かりにくくしている
if (!arg_reverse)
r = sd_journal_next_skip(j, 1 + after_cursor);
else
r = sd_journal_previous_skip(j, 1 + after_cursor);
if (!arg_reverse)
r = sd_journal_next_skip(j, 1 + after_cursor);
else
r = sd_journal_previous_skip(j, 1 + after_cursor);
546デフォルトの名無しさん
2019/09/22(日) 17:45:39.81ID:vTpi5vA1547デフォルトの名無しさん
2019/09/22(日) 18:17:09.14ID:yzO2ACAf >>521 Perl5 >>541 を少しコンパクトにしてみた
use Time::Piece;
@fy = (['2019/05/01','令和'],['1989/01/08','平成'],['1926/12/25','昭和'],['1912/07/30','大正']);
$$_[0] = Time::Piece->strptime($$_[0], '%Y/%m/%d') for @fy;
for (qw{1970/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 1912/07/29 2019/02/29}) {
my ($t, $t0, $era, $nen);
eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
$s = 'Invalid';
if ($t and $t->strftime('%Y/%m/%d') eq $_) {
do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy;
$s = 'ERROR';
if ($t0) {
$nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年';
$s = "$era$nen" . $t->mon . '月' . $t->mday . '日';
}
}
print "$_: $s\n";
}
use Time::Piece;
@fy = (['2019/05/01','令和'],['1989/01/08','平成'],['1926/12/25','昭和'],['1912/07/30','大正']);
$$_[0] = Time::Piece->strptime($$_[0], '%Y/%m/%d') for @fy;
for (qw{1970/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 1912/07/29 2019/02/29}) {
my ($t, $t0, $era, $nen);
eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
$s = 'Invalid';
if ($t and $t->strftime('%Y/%m/%d') eq $_) {
do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy;
$s = 'ERROR';
if ($t0) {
$nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年';
$s = "$era$nen" . $t->mon . '月' . $t->mday . '日';
}
}
print "$_: $s\n";
}
548蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 20:58:52.87ID:Pb++lLAf お題: マイドキュメントにある全てのファイルの更新日時を取得し、曜日ごとに平均時刻を集計せよ。
549デフォルトの名無しさん
2019/09/22(日) 21:11:37.57ID:PDMeYfrK マイドキュメントがなかった
550蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 21:23:02.16ID:Pb++lLAf お題: あるフォルダにある全てのファイルの更新日時を全て同じ日時にリセットせよ。
551デフォルトの名無しさん
2019/09/22(日) 21:30:08.53ID:WdPSTicU552蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 21:35:34.35ID:rZK31NHQ ※未来の日時にするとMakefileなどで不具合の原因になるかもしれないので、やめよう。必ず過去の日付で。
553デフォルトの名無しさん
2019/09/22(日) 21:40:33.36ID:2VFOPinw >>1
◆T6も書き込み禁止
◆T6も書き込み禁止
554蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 22:00:19.44ID:rZK31NHQ555デフォルトの名無しさん
2019/09/22(日) 22:02:04.64ID:35++XhB6 とりあえずNGにした
556デフォルトの名無しさん
2019/09/22(日) 22:03:45.82ID:35++XhB6 うっかり回答しないように連鎖にしとく方がいいか
557デフォルトの名無しさん
2019/09/22(日) 22:23:23.82ID:W3ewN8v1 >>548
\ls -l --time-style=+%a:%T ~/ | perl -lane 'print $F[5]' | sed "/^$/d" | perl -F: -lane '{++$i{$F[0]}; $acc{$F[0]} += $F[1]*3600 + $F[2] *60 + $F[3] }END{ print "$_ ". $acc{$_}/$i{$_} . " seconds" for keys %acc}'
日 49262.7 seconds
金 52984.3125 seconds
火 56316.8461538462 seconds
木 47056.3333333333 seconds
月 53660.7894736842 seconds
土 49998.1538461538 seconds
水 48117.5 seconds
\ls -l --time-style=+%a:%T ~/ | perl -lane 'print $F[5]' | sed "/^$/d" | perl -F: -lane '{++$i{$F[0]}; $acc{$F[0]} += $F[1]*3600 + $F[2] *60 + $F[3] }END{ print "$_ ". $acc{$_}/$i{$_} . " seconds" for keys %acc}'
日 49262.7 seconds
金 52984.3125 seconds
火 56316.8461538462 seconds
木 47056.3333333333 seconds
月 53660.7894736842 seconds
土 49998.1538461538 seconds
水 48117.5 seconds
558デフォルトの名無しさん
2019/09/22(日) 22:24:24.30ID:W3ewN8v1 スルーだったか
559蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 22:44:17.87ID:rZK31NHQ お題: 自分のプログラムファイルが何バイトかを表示せよ。
560デフォルトの名無しさん
2019/09/22(日) 22:48:43.53ID:Yf8464Y3 >>548 Perl5、なお>>550は(utimeを使えばできますが)回答は作成いたしません
use File::Find 'find';
sub hier {
my $mtime = (lstat)[9];
push @epochs, $mtime if -f _;
}
find({wanted => \&hier}, "$ENV{USERPROFILE}/My Documents");
@w = ([],[],[],[],[],[],[]);
for (@epochs) {
($sec, $min, $hour, $wday) = (localtime $_)[0..2,6];
push @{$w[$wday]}, 3600*$hour + 60*$min + sec;
}
use List::Util 'sum';
use Time::Piece;
@dw = qw(日 月 火 水 木 金 土);
for (0..6) {
$n = @{$w[$_]};
$mean = sum(@{$w[$_]}) / $n;
$s = Time::Piece->new($mean);
printf "$dw[$_](%4d): %s\n", $n, $s->hms;
}
実行結果
~ $ perl 15_548.pl
日( 104): 21:04:43
月( 94): 22:57:25
火( 46): 21:41:46
水( 298): 12:55:47
木( 322): 05:04:39
金(2020): 07:01:42
土(1650): 22:50:54
use File::Find 'find';
sub hier {
my $mtime = (lstat)[9];
push @epochs, $mtime if -f _;
}
find({wanted => \&hier}, "$ENV{USERPROFILE}/My Documents");
@w = ([],[],[],[],[],[],[]);
for (@epochs) {
($sec, $min, $hour, $wday) = (localtime $_)[0..2,6];
push @{$w[$wday]}, 3600*$hour + 60*$min + sec;
}
use List::Util 'sum';
use Time::Piece;
@dw = qw(日 月 火 水 木 金 土);
for (0..6) {
$n = @{$w[$_]};
$mean = sum(@{$w[$_]}) / $n;
$s = Time::Piece->new($mean);
printf "$dw[$_](%4d): %s\n", $n, $s->hms;
}
実行結果
~ $ perl 15_548.pl
日( 104): 21:04:43
月( 94): 22:57:25
火( 46): 21:41:46
水( 298): 12:55:47
木( 322): 05:04:39
金(2020): 07:01:42
土(1650): 22:50:54
561デフォルトの名無しさん
2019/09/22(日) 22:50:50.35ID:JOdgUuSI >>548
馬鹿っぽ
馬鹿っぽ
562デフォルトの名無しさん
2019/09/22(日) 22:53:39.99ID:JOdgUuSI 蟻人間、プログラミングに興味を持ち始めた中学生臭がすごい
563蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 23:00:26.05ID:rZK31NHQ >>559
はいはい、模範解答出せばいいんでしょ?
// C++/Win32
#include <windows.h>
#include <stdio.h>
int main(void)
{
char buf[MAX_PATH];
GetModuleFileNameA(NULL, buf, MAX_PATH);
WIN32_FIND_DATAA find;
HANDLE hFind = FindFirstFileA(buf, &find);
printf("%ld bytes", find.nFileSizeLow);
FindClose(hFind);
return 0;
}
はいはい、模範解答出せばいいんでしょ?
// C++/Win32
#include <windows.h>
#include <stdio.h>
int main(void)
{
char buf[MAX_PATH];
GetModuleFileNameA(NULL, buf, MAX_PATH);
WIN32_FIND_DATAA find;
HANDLE hFind = FindFirstFileA(buf, &find);
printf("%ld bytes", find.nFileSizeLow);
FindClose(hFind);
return 0;
}
564蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 23:03:43.50ID:rZK31NHQ >>559 別解ね。
/* C */
#include <stdio.h>
int main(int argc, char **argv)
{
FILE *fp = fopen(argv[0], "rb");
fseek(fp, 0, SEEK_END);
printf("%ld bytes\n", ftell(fp));
fclose(fp);
return 0;
}
/* C */
#include <stdio.h>
int main(int argc, char **argv)
{
FILE *fp = fopen(argv[0], "rb");
fseek(fp, 0, SEEK_END);
printf("%ld bytes\n", ftell(fp));
fclose(fp);
return 0;
}
565デフォルトの名無しさん
2019/09/22(日) 23:10:48.88ID:Yf8464Y3566デフォルトの名無しさん
2019/09/22(日) 23:25:59.86ID:35++XhB6 >>514 Pharo/Squeak Smalltalk
| suffixes fn |
suffixes := #(st nd rd), (Array new: 7 withAll: #th).
suffixes := (0 to: 9) gather: [:idx | suffixes].
suffixes from: 11 to: 13 put: #th.
fn := [:n | n asString, (suffixes atWrap: n)].
fn value: 1. "=> '1st' "
fn value: 23. "=> '23rd' "
fn value: 12. "=> '12th' "
| suffixes fn |
suffixes := #(st nd rd), (Array new: 7 withAll: #th).
suffixes := (0 to: 9) gather: [:idx | suffixes].
suffixes from: 11 to: 13 put: #th.
fn := [:n | n asString, (suffixes atWrap: n)].
fn value: 1. "=> '1st' "
fn value: 23. "=> '23rd' "
fn value: 12. "=> '12th' "
567デフォルトの名無しさん
2019/09/22(日) 23:32:48.92ID:Yf8464Y3 >>560 修正、0割回避、localtimeが返すepochのmtimeはUTCベースなのでTZ設定追加し9時間ずれ対策
$ENV{TZ} = 'UTC';
use File::Find 'find';
use Time::Piece;
sub hier {
my $mtime = (lstat)[9];
push @epochs, $mtime if -f _;
}
find({wanted => \&hier}, "$ENV{USERPROFILE}/My Documents");
print "Number of files = " . @epochs . "\n";
@w = ([],[],[],[],[],[],[]);
for (@epochs) {
($sec, $min, $hour, $wday) = (localtime $_)[0..2,6];
push @{$w[$wday]}, 3600*$hour + 60*$min + sec;
}
use List::Util 'sum';
@dw = qw(日 月 火 水 木 金 土);
for (0..6) {
$n = @{$w[$_]};
if ($n) {
$mean = sum(@{$w[$_]}) / $n;
$s = Time::Piece->new($mean);
printf "$dw[$_](%4d): %s\n", $n, $s->hms;
}
}
$ENV{TZ} = 'UTC';
use File::Find 'find';
use Time::Piece;
sub hier {
my $mtime = (lstat)[9];
push @epochs, $mtime if -f _;
}
find({wanted => \&hier}, "$ENV{USERPROFILE}/My Documents");
print "Number of files = " . @epochs . "\n";
@w = ([],[],[],[],[],[],[]);
for (@epochs) {
($sec, $min, $hour, $wday) = (localtime $_)[0..2,6];
push @{$w[$wday]}, 3600*$hour + 60*$min + sec;
}
use List::Util 'sum';
@dw = qw(日 月 火 水 木 金 土);
for (0..6) {
$n = @{$w[$_]};
if ($n) {
$mean = sum(@{$w[$_]}) / $n;
$s = Time::Piece->new($mean);
printf "$dw[$_](%4d): %s\n", $n, $s->hms;
}
}
568蟻人間 ◆T6xkBnTXz7B0
2019/09/23(月) 00:23:07.10ID:JAc5gnVl >>548
出題の狙い。犯罪捜査において被疑者または関係者の生活パターンを知りたいときに、パソコンのファイルの日時の統計のデジタル鑑識により、パソコンの使用実態が類推可能であることを示すものである。
出題の狙い。犯罪捜査において被疑者または関係者の生活パターンを知りたいときに、パソコンのファイルの日時の統計のデジタル鑑識により、パソコンの使用実態が類推可能であることを示すものである。
569デフォルトの名無しさん
2019/09/23(月) 00:28:46.25ID:GyCF+Do4 出勤とか寝る時間があまり変わらないという仮定で
同一人物の疑いがある2つのコテハンを
数百スレ分から時間別書き込み頻度から検証したことがあるが
それにくらべると得られる情報少なすぎて草
同一人物の疑いがある2つのコテハンを
数百スレ分から時間別書き込み頻度から検証したことがあるが
それにくらべると得られる情報少なすぎて草
570デフォルトの名無しさん
2019/09/23(月) 00:30:37.56ID:iF+DbCXr >>568
馬鹿っぽ
馬鹿っぽ
571デフォルトの名無しさん
2019/09/23(月) 01:01:29.40ID:ZSRjXCoe572デフォルトの名無しさん
2019/09/23(月) 01:43:06.73ID:ZSRjXCoe >>567
そうじゃねぇだろ、file systemのmtimeはUTCベースなのに
わざわざlocaltimeでTZ=JST_9の日時に変換してから
時分秒だけTime::Pieceに食べさせるから
GMTとして解釈され9時間ずれたんだよ。
それを回避するためTZ環境変数にUTCを設定するとは
何たる尻の青い、くちばしの黄色い、まだ駆け出しの青二才、未熟者
そうじゃねぇだろ、file systemのmtimeはUTCベースなのに
わざわざlocaltimeでTZ=JST_9の日時に変換してから
時分秒だけTime::Pieceに食べさせるから
GMTとして解釈され9時間ずれたんだよ。
それを回避するためTZ環境変数にUTCを設定するとは
何たる尻の青い、くちばしの黄色い、まだ駆け出しの青二才、未熟者
573デフォルトの名無しさん
2019/09/23(月) 04:00:12.20ID:Sp7ybd6s >>559 Common Lisp
https://ideone.com/idfFJM (sbcl)
https://ideone.com/8G7hUD (clisp)
ideoneは、sbclの場合は compile-file で作成したファイルを実行しているらしく
結果が異なっているのはそのため
https://ideone.com/idfFJM (sbcl)
https://ideone.com/8G7hUD (clisp)
ideoneは、sbclの場合は compile-file で作成したファイルを実行しているらしく
結果が異なっているのはそのため
574蟻人間 ◆T6xkBnTXz7B0
2019/09/23(月) 12:05:34.14ID:Pxp3zDR1575デフォルトの名無しさん
2019/09/23(月) 12:49:49.08ID:iF+DbCXr 模範解答(汚ねえスパゲティ)
576デフォルトの名無しさん
2019/09/23(月) 13:54:34.61ID:2RLjyW/B577デフォルトの名無しさん
2019/09/27(金) 01:42:52.78ID:/3CUbuCi578デフォルトの名無しさん
2019/09/27(金) 02:44:56.39ID:/3CUbuCi579デフォルトの名無しさん
2019/09/27(金) 02:50:14.35ID:/3CUbuCi >>550
シェルスクリプト (find, touch コマンド使用)
2019/09/27 02:48:00 に合わせる場合
#!/bin/sh
find あるフォルダ -type f -exec touch -t 201909270248.00 {} \;
シェルスクリプト (find, touch コマンド使用)
2019/09/27 02:48:00 に合わせる場合
#!/bin/sh
find あるフォルダ -type f -exec touch -t 201909270248.00 {} \;
580デフォルトの名無しさん
2019/09/27(金) 19:49:32.99ID:jf7tgLq0 >>548
Powershell
ls ([Environment]::GetFolderPath(5)) -Recurse -Force |? {!$_.PSIsContainer} `
|% {$_.LastWriteTime} | sort {[int]$_.DayOfWeek} | group {"{0:ddd}" -f $_} `
|% {"{0}{1,10:T}" -f $_.Name, [DateTime][Int64]($_.Group |% {$_.TimeOfDay.Ticks} | measure -Average).Average}
Powershell
ls ([Environment]::GetFolderPath(5)) -Recurse -Force |? {!$_.PSIsContainer} `
|% {$_.LastWriteTime} | sort {[int]$_.DayOfWeek} | group {"{0:ddd}" -f $_} `
|% {"{0}{1,10:T}" -f $_.Name, [DateTime][Int64]($_.Group |% {$_.TimeOfDay.Ticks} | measure -Average).Average}
581デフォルトの名無しさん
2019/09/27(金) 19:57:07.16ID:jf7tgLq0 >>580をコピペで実行するときは、`の後の半角空白を削除しないとエラーになる。
582デフォルトの名無しさん
2019/09/27(金) 21:29:22.88ID:vBAnAZ37 お題:リスト等の重複する要素を削除し、大きい順に並び替えよ
[3, 1, 4, 1, 5]
↓
[5, 4, 3, 1]
java
https://ideone.com/8VN6hL
rust
https://ideone.com/igyvob
ruby
https://ideone.com/VsemVf
octave
https://ideone.com/FHue1K
[3, 1, 4, 1, 5]
↓
[5, 4, 3, 1]
java
https://ideone.com/8VN6hL
rust
https://ideone.com/igyvob
ruby
https://ideone.com/VsemVf
octave
https://ideone.com/FHue1K
583デフォルトの名無しさん
2019/09/27(金) 22:41:14.90ID:kWPPTdrf584デフォルトの名無しさん
2019/09/27(金) 23:07:29.28ID:Z4UqEtTG >>582 javascript
[...new Set([3, 1, 4, 1, 5])].sort().reverse()
[...new Set([3, 1, 4, 1, 5])].sort().reverse()
585デフォルトの名無しさん
2019/09/28(土) 00:13:52.50ID:OLAr2jSy586デフォルトの名無しさん
2019/09/28(土) 00:23:41.09ID:gcUBCYXO >>582 Perl5 二回答
%h = map{$_=>1} qw(3 1 4 1 5);
@a = sort{$b<=>$a} keys %h;
print "@a\n";
use List::Util 1.45 'uniq';
@a = uniq sort{$b<=>$a} qw(3 1 4 1 5);
print "@a\n"
実行結果、いずれも
~ $ perl 15_582.pl
5 4 3 1
%h = map{$_=>1} qw(3 1 4 1 5);
@a = sort{$b<=>$a} keys %h;
print "@a\n";
use List::Util 1.45 'uniq';
@a = uniq sort{$b<=>$a} qw(3 1 4 1 5);
print "@a\n"
実行結果、いずれも
~ $ perl 15_582.pl
5 4 3 1
587デフォルトの名無しさん
2019/09/28(土) 00:52:45.19ID:HcOq9X6n588デフォルトの名無しさん
2019/09/28(土) 01:09:55.39ID:HcOq9X6n お題: 指定のディレクトリ以下にある全てのファイルの更新日時を取得し、曜日毎、及び時間毎にしてグラフにして出せ。
これは同じ曜日の同じ時間で更新されているファイルのカウントということね。例えば今週と先週の土曜日の7:00代の更新ファイルが一つづつあれば土曜日7時代のカウントが2になる。
で、グラフにする時は表示方法はなんでもいいので例えばテキストでアスタリスク2個で出す。(後でこちらでもプログラム作るのでそれ参考にしてもいい)。
ディレクトリの指定方法は普通なら引数での指定が良いだろうけどプログラムに埋め込んでも標準入力やファイルから読み込んでも何でもいい。それはこのお題では肝心な事ではないので。
これは同じ曜日の同じ時間で更新されているファイルのカウントということね。例えば今週と先週の土曜日の7:00代の更新ファイルが一つづつあれば土曜日7時代のカウントが2になる。
で、グラフにする時は表示方法はなんでもいいので例えばテキストでアスタリスク2個で出す。(後でこちらでもプログラム作るのでそれ参考にしてもいい)。
ディレクトリの指定方法は普通なら引数での指定が良いだろうけどプログラムに埋め込んでも標準入力やファイルから読み込んでも何でもいい。それはこのお題では肝心な事ではないので。
589デフォルトの名無しさん
2019/09/28(土) 02:06:50.36ID:63IK4172 それだったらファイル、ディレクトリ操作は除外してランダムに日時発生させるとかでいいだろ
機種依存するので
ランダム生成は依存しない
機種依存するので
ランダム生成は依存しない
590デフォルトの名無しさん
2019/09/28(土) 03:07:13.28ID:HcOq9X6n591デフォルトの名無しさん
2019/09/28(土) 03:08:06.06ID:HcOq9X6n >>589
?
?
592デフォルトの名無しさん
2019/09/28(土) 03:10:19.21ID:63IK4172 unixタイムとかで、日時と整数は一対一対応してるだろ
ランダム生成で日時は作れる
ランダム生成で日時は作れる
594デフォルトの名無しさん
2019/09/28(土) 03:30:16.66ID:63IK4172 何番と限らず日時と整数は一対一できるから日時が関係するあらゆる問題
596デフォルトの名無しさん
2019/09/28(土) 04:47:52.20ID:HcOq9X6n597デフォルトの名無しさん
2019/09/28(土) 10:58:14.32ID:bVbqLRNA >>582
@Mathematica
deleteDuplicatesSort[lst_] := lst //
DeleteDuplicates //
Sort[#, Greater] & ;
In[1] := deleteDuplicatesSort[{3, 1, 4, 1, 5}]
Out[1] = {5, 4, 3, 1}
# Mathematica のカーネルがいつの間にか無償開放されてた!
#
# 「「Mathematica」や“Wolfram|Alpha”の核「Wolfram Engine」が開発者向けに無償開放」
# https://forest.watch.impress.co.jp/docs/news/1186454.html
@Mathematica
deleteDuplicatesSort[lst_] := lst //
DeleteDuplicates //
Sort[#, Greater] & ;
In[1] := deleteDuplicatesSort[{3, 1, 4, 1, 5}]
Out[1] = {5, 4, 3, 1}
# Mathematica のカーネルがいつの間にか無償開放されてた!
#
# 「「Mathematica」や“Wolfram|Alpha”の核「Wolfram Engine」が開発者向けに無償開放」
# https://forest.watch.impress.co.jp/docs/news/1186454.html
598デフォルトの名無しさん
2019/09/28(土) 15:09:30.05ID:E6lKnilk C++標準のファイルシステムでは、パスは取れるが、時間を取得する関数がないっぽい。
599デフォルトの名無しさん
2019/09/28(土) 15:18:04.57ID:E6lKnilk あぁ、あったわ。C++17で入ったからまだ不明瞭だ。自分にとって。
600デフォルトの名無しさん
2019/09/28(土) 15:36:35.57ID:E6lKnilk601デフォルトの名無しさん
2019/09/28(土) 16:35:23.18ID:E6lKnilk602デフォルトの名無しさん
2019/09/28(土) 21:56:43.99ID:yaf8uxdw >>588
PowerShell
$path = [Environment]::GetFolderPath(5)
$all = ls $path -Recurse |? {!$_.PSIsContainer} |% {$_.LastWriteTime}
$max = [Math]::Max(10, ($all | group DayOfWeek, Hour | measure Count -Max).Maximum)
"時" + (("日月火水木金土" -split "") -join "|".PadRight(9))
"--+" + ("-" * 10 + "+") * 7
$y = $all | group Hour -AsHashTable
0..23 |% {
if ($y[$_]) {
$x = $y[$_] | group {[int]$_.DayOfWeek} -AsHashTable
} else {
$x = @()
}
$line = "{0,2}" -f $_
0..6 |% {
$n = ($x[$_].Count * 10 + [int]$max / 2 - 1) / $max
$line += "|" + ("*" * $n).PadRight(10)
}
$line + "|"
}
PowerShell
$path = [Environment]::GetFolderPath(5)
$all = ls $path -Recurse |? {!$_.PSIsContainer} |% {$_.LastWriteTime}
$max = [Math]::Max(10, ($all | group DayOfWeek, Hour | measure Count -Max).Maximum)
"時" + (("日月火水木金土" -split "") -join "|".PadRight(9))
"--+" + ("-" * 10 + "+") * 7
$y = $all | group Hour -AsHashTable
0..23 |% {
if ($y[$_]) {
$x = $y[$_] | group {[int]$_.DayOfWeek} -AsHashTable
} else {
$x = @()
}
$line = "{0,2}" -f $_
0..6 |% {
$n = ($x[$_].Count * 10 + [int]$max / 2 - 1) / $max
$line += "|" + ("*" * $n).PadRight(10)
}
$line + "|"
}
603蟻人間 ◆T6xkBnTXz7B0
2019/09/29(日) 02:59:00.33ID:8mEp/ii8 お題: 地球上の2地点を緯度・経度で指定すると、(球面上の)直線距離を求めてくれるプログラム。
地球がほぼ球体であることを仮定してもよい。
地球がほぼ球体であることを仮定してもよい。
604蟻人間 ◆T6xkBnTXz7B0
2019/09/29(日) 03:04:31.30ID:8mEp/ii8 ロンドンからニューヨーク。
北京から台湾。
ニュージーランドからトルコ。
北京から台湾。
ニュージーランドからトルコ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国とロシアの爆撃機、日本周辺で共同飛行 [少考さん★]
- 空自機レーダー照射、音声データ公開 中国 ★2 [蚤の市★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★3 [597533159]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- よん!よん!マールマール!ワンワンワン!
- オーストラリアで16歳未満はSNS禁止になったらしいけどこれ
- スバルが言ったらノエルが濡れそうなこと
