国产一区二区三区香蕉-2020国产成人精品视频-欧美日韩亚洲三区-www.91桃色-最美情侣中文第5季免费观看-久草毛片-国产成人精品av-男女猛烈拍拍拍无挡视频-中文字幕看片-色视频欧美一区二区三区-久久久久久久久久影院-一级a爱片久久毛片-精品久久久久久无码中文字幕一区-欧美色图网站-无码色偷偷亚洲国内自拍-国产一区在线免费观看

代做COMP226、代寫solution.R設(shè)計編程

時間:2024-03-22  來源:  作者: 我要糾錯



COMP226 Assignment 1
Continuous Assessment
Number
1 (of 2)
Weighting 10%
Assignment Circulated Monday 26 February 2024
Deadline 21:00 Friday 22 March 2024
Submission Mode Submit a single R file "solution.R" to the CodeGrade Assignment on Canvas
Learning Outcomes
Assessed
Have an understanding of market microstructure and its impact on trading.
Goal of Assignment Reconstruct a limit order book from order messages; compute quantities
based on the limit order book
Marking Criteria Pre-deadline visible CodeGrade tests of correctness of 6 functions (70%);
Post-deadline CodeGrade tests of 4 further functions (30%)
Submission necessary in
order to satisfy module
requirements
No
Late Submission Penalty Standard UoL policy; resubmissions after the deadline may not be
considered.
Expected time taken Roughly 8-12 hours
Warning
Submissions are automatically put through a plagiarism and collusion detection system. Students
found to have plagiarized or colluded will likely receive a mark of zero. Do not discuss or show your
work to others, and do not search for solutions to the assignment online. In previous years, students
have had their studies terminated and left without a degree because of plagiarism or collusion.
Rscript from Rstudio
In this assigment, we use Rscript (which is provided by R) to run our code, e.g.,
Rscript main.R template.R input/book_1.csv input/empty.txt
In R studio, you can call Rscript from the "terminal" tab (as opposed to the "console"). On Windows,
use Rscript.exe not Rscript:
Rscript.exe main.R template.R input/book_1.csv input/empty.txt
Distributed code and sample input and output data
As a first step, please download comp226_a1.zip via the assignment page on Canvas. Then unzip
comp226_a1.zip, which will yield the following contents in the directory comp226_a1:
comp226_a1
Brief summary
You are provided with three .R files, two complete, which should not be edited:
• main.R is the file you will run, e.g. with Rscript, by specifying several command line arguments
described below (see example above);
• common.R contains complete working functions that are used by main.R in conjunction with the
incomplete functions in template.R;
and one incomplete file:
• template.R is the file that you will edit -- the distributed version contains empty functions. It contains
10 empty functions.
If you run main.R using template.R as it is distributed, it runs without error, but does not produce the
desired output because the first 6 functions in template.R are provided empty. To get 70%, you will need to
correctly complete these 6 functions; if your answer is only partially correct you will get a mark less than 70%.
If you have correctly completed all these 6 functions, you can then -- and only then -- get marks for the 4
"extra" functions, which together account for 30% of the marks.
You should submit a single R file that contains your implementation of some or all of these 10 functions. Your
submission will be marked via extensive automated tests of correctness across a wide range of example
cases, with some chosen randomly at test time:
• The tests for the first 6 functions, which give up to 70% of the marks will run at the time of submission
and are fully visible pre-deadline on CodeGrade (detailed guidance on using CodeGrade to improve
your mark can be found at the end of this document);
• The tests for the final 3 functions will only run post-deadline, and only if you got full marks for the
first 6 functions.
You can (and if required should) submit multiple times to repeatedly use the CodeGrade pre-deadline tests;
for a correct solution CodeGrade will show that you pass all tests and have thus achieved the first 70% of
marks. It probably does not make sense for you to work much on the final 4 functions until you have achieved
this and submitted completely correct versions of the first 6 functions.
In addition to the visible pre-deadline tests on CodeGrade, for the first 6 functions, correct sample output is
provided so that you can check correctness of your implementations "offline" (without submitting to
CodeGrade), for example with a tool like diff (https://en.wikipedia.org/wiki/Diff) to compare the output that you
produce with the correct output. Offline testing is quick to do once you have set it up, and if you match all the
offline examples then chances are that you will also pass the CodeGrade tests (but make sure that you
check this to avoid nasty surprises).
template.R versus solution.R
Throughout the rest of this handout, we show example output from the incomplete template.R as well
as using a full solution file "solution.R" that contains a correct implementation of all the functions.
Obviously, you are not given the file solution.R, you need to create it from template.R.
The first 6 functions to implement
The first 6 functions, which are worth 70% of the marks, are broken down into two groups. The percentages
in square brackets show the breakdown of the marks by function.
Order book stats:
1. book.total_volume <- function(book) [5%]
2. book.best_prices <- function(book) [5%]
3. book.midprice <- function(book) [5%]
4. book.spread <- function(book) [5%]
These first 4 functions are intentionally very easy, and are meant to as get you used to the format of book.
The next 2 functions are more involved and relate to reconstructing the order book from an initial book and a
file of messages.
Reconstructing the limit order book:
5. book.reduce <- function(book, message) [15%]
6. book.add <- function(book, message) [35%]
Running main.R with template.R
An example of calling main.R with template.R is as follows.
Rscript main.R template.R input/book_1.csv input/empty.txt
As seen in this example, main.R takes as arguments the path to three input files (the order of the
arguments matters):
1. an R file with the functon implementations (template.R in the example)
2. an initial order book (input/book_1.csv in the example)
3. order messages to be processed (input/empty.txt in the example)
Let's see the source code of main.R and the output that it produces.
options(warn=-1)
args <- commandArgs(trailingOnly = TRUE); nargs = length(args)
log <- (nargs == 4) # TRUE is there are exactly 4 arguments
arg_format <- "<--log> <solution_path> <book_path> <messages_path>"
if (nargs < 3 || nargs > 4) # check that there are 3 or 4 arguments
 stop(paste("main.R has 3 required arguments and 1 optional flag:", arg_format))
if (nargs == 4 && args[1] != "--log") # if 4 check that --log is the first
 stop(paste("Bad arguments format, expected:", arg_format))
solution_path <- args[nargs-2]
book_path <- args[nargs-1]
messages_path <- args[nargs]
if (!all(file.exists(c(solution_path, book_path, messages_path))))
 stop("File does not exist at path provided.")
source(solution_path); source("common.R") # source common.R from pwd
book <- book.load(book_path)
book <- book.reconstruct(data.load(messages_path), init=book, log=log)
book.summarise(book)
ret <- book.extra3(book)
cat('ret', ret, 'n')
In short, main.R:
• checks that the command line arguments are ok
• assigns them to variables (solution_path, data_path, and book_path respectively)
• sources common.R and the file at solution_path; loads the initial book
• reconstructs the book according to the messages
• prints out the resulting book; prints out the book stats
Let's see the output for the example above:
$ Rscript main.R template.R input/book_1.csv input/empty.txt
$ask
 oid price size
1 a 105 100
$bid
 oid price size
1 b 95 100
Total volume:
Best prices:
Mid-price:
Spread:
Now let's see what the output would look like for a correct implementation:
$ Rscript main.R solution.R input/book_1.csv input/empty.txt
$ask
 oid price size
1 a 105 100
$bid
 oid price size
1 b 95 100
Total volume: 100 100
Best prices: 95 105
Mid-price: 100
Spread: 10
You will see that now the order book stats have been included in the output, because the four related
functions that are empty in template.R have been implemented in solution.R.
The initial order book
Here is the contents of input/book_1.csv, one of 3 provided initial book examples:
oid,side,price,size
a,S,105,100
b,B,95,100
Let's justify the columns to help parse this input:
oid side price size
a S 105 100
b B 95 100
The first row is a header row. Every subsequent row contains a limit order, which is described by the
following fields:
• oid (order id) is stored in the book and used to process (partial) cancellations of orders that arise in
"reduce" messages, described below;
• side identifies whether this is a bid ('B' for buy) or an ask ('S' for sell);
• price and size are self-explanatory.
Existing code in common.R will read in a file like input/book_1.csv and create the corresponding two
(possibly empty) orders book as two data frames that will be stored in the list book, a version of which will be
passed to all of the functions that you are required to implement.
Note that if we now change the message file to a non-empty one, template.R will produce the same output
(since it doesn't use the messages; you need to write the code for functions 5 and 6 to process them):
$ Rscript main.R template.R input/book_1.csv input/message_a.txt
$ask
 oid price size
1 a 105 100
$bid
 oid price size
1 b 95 100
Total volume:
Best prices:
Mid-price:
Spread:
If correct message parsing and book updating is implemented, book would be updated according to
input/message_a.txt to give the following output:
$ Rscript main.R solution.R input/book_1.csv input/message_a.txt
$ask
 oid price size
8 a 105 100
7 o 104 292
6 r 102 194
5 k 99 71
4 q 98 166
3 m 98 88
2 j 97 132
1 n 96 375
$bid
 oid price size
1 b 95 100
2 l 95 29
3 p 94 87
4 s 91 102
Total volume: 318 1418
Best prices: 95 96
Mid-price: 95.5
Spread: 1
Before we go into details on the message format and reconstructing the order book, let's discuss the first four
functions that compute the book stats.
Computing limit order book stats
The first four of the functions that you need to implement compute limit order book stats, and can be
developed and tested without parsing the order messages at all. In particular, you can develop and test the
first four functions using an empty message file, input/empty.txt, as in the first example above.
The return values of the four functions should be as follows (where, as usual in R, single numbers are
actually numeric vectors of length 1):
• book.total_volumes should return a list with two named elements, bid, the total volume in the bid
book, and ask, the total volume in the ask book;
• book.best_prices should return a list with two named elements, bid, the best bid price, and ask,
the best ask price;
• book.midprice should return the midprice of the book;
• book.spread should return the spread of the book.
Check that the example outputs above are what you expect them to be.
Reconstructing the order book from messages
We now move on to the reconstructing the order book from the messages in the input message file. You do
not need to look into the details of the (fully implemented) functions book.reconstruct or book.handle
in common.R that manage the reconstruction of the book from the starting initial book according to the
messages (but you can if you want).
In the next section, we describe the two types of message, "Add" messages and "Reduce" messages. All
you need to know to complete the assignment is that messages in the input file are processed in order, i.e.,
line by line, with "Add" messages passed to book.add and "Reduce" messages passed to book.reduce,
along with the current book in both cases.
Message Format
The message file contains one message per line (terminated by a single linefeed character, 'n'), and each
message is a series of fields separated by spaces. Here's an example, which contains an "Add" message
followed by a "Reduce" message:
A c S 97 36
R a 50
An "Add" message looks like this:
'A' oid side price size
• 'A': fixed string identifying this as an "Add" message;
• oid: "order id" used by subsequent "Reduce" messages;
• side: 'B' for a buy order (a bid), and an 'S' for a sell order (an ask);
• price: limit price of this order;
• size: size of this order.
A "Reduce" message looks like this:
'R' oid size
• 'R': fixed string identifying this as a "Reduce" message;
• oid: "order id" identifies the order to be reduced;
• size: amount by which to reduce the size of the order (not its new size); if size is equal to or greater
than the existing size, the order is removed from the book.
Processing messages
A "Reduce" message affects at most one existing order. An "Add" message will either:
• not cross the spread and then add a single row to the book (orders at the same price are stored
separately to preserve their distinct "oid"s);
• cross the spread and in that case can affect any number of orders on the other side of the book (and
may or may not result in a remaining limit order for residual volume).
The provided example message files are split into cases that include crosses and those that don't. This
allows you to develop your code incrementally and test it on inputs of differing difficulty. We do an example of
each case, one by one. In each example we start from input/book_1.csv; we only show this initial book in
the first case.
Example of processing a reduce message
$ Rscript main.R solution.R input/book_1.csv input/empty.txt
$ask
 oid price size
1 a 105 100
$bid
 oid price size
1 b 95 100
Total volume: 100 100
Best prices: 95 105
Mid-price: 100
Spread: 10
$ cat input/message_ex_reduce.txt
R a 50
$ Rscript main.R solution.R input/book_1.csv input/message_ex_reduce.txt
$ask
 oid price size
1 a 105 50
$bid
 oid price size
1 b 95 100
Total volume: 100 50
Best prices: 95 105
Mid-price: 100
Spread: 10
Example of processing an add (non-crossing) message
$ cat input/message_ex_add.txt
A c S 97 36
$ Rscript main.R solution.R input/book_1.csv input/message_ex_add.txt
$ask
 oid price size
2 a 105 100
1 c 97 36
$bid
 oid price size
1 b 95 100
Total volume: 100 136
Best prices: 95 97
Mid-price: 96
Spread: 2
Example of processing a crossing add message
$ cat input/message_ex_cross.txt
A c B 106 101
$ Rscript main.R solution.R input/book_1.csv input/message_ex_cross.txt
$ask
[1] oid price size
<0 rows> (or 0-length row.names)
$bid
 oid price size
1 c 106 1
2 b 95 100
Total volume: 101 0
Best prices: 106 NA
Mid-price: NA
Spread: NA
The NAs in the last example are the expected output for certain fields when at least one side of the book is
empty and the corresponding quantity is undefined.
Sample output
We provide sample output for 9 cases, namely all combinations of the 3 initial books (book_1.csv,
book_2.csv, book_3.csv) and 3 message files, all found in the input subdirectory. The 3 message files are
called:
file
messages_a.txt add messages only, i.e., requires book.add but not book.reduce; for all three
initial books, none of the messages cross the spreed
messages_ar.txt add and reduce messages, but for the initial book book_3.csv, no add message
crosses the spread
messages_arc.txt add and reduce messages, with some adds that cross the spread for all three
initial books
The 9 output files can be found in the output subdirectory of the comp226_a1 directory.
output
0 directories, 9 files
Hints for order book stats
For book.spread and book.midprice a nice implementation would use book.best_prices.
Hints for book.add and book.reduce
A possible way to implement book.add and book.reduce that makes use of the different example
message files is the following:
• First, do a partial implementation of book.add, namely implement add messages that do not cross.
Check your implementation with message_a.txt.
• Next, implement book.reduce fully. Check your combined (partial) implementation of book.add and
book.reduce with message_ar.txt and book_3.csv (only this combination with
message_ar.txt has no crosses).
• Finally, complete the implementation of book.add to deal with crosses. Check your implementation
with message_arc.txt and any initial book or with message_ar.txt and book_1.csv or
book_2.csv.
Hint on book.sort
$ Rscript main.R solution.R input/book_1.csv input/message_ex_same_price.txt
$ask
 oid price size
2 j 105 132
1 a 105 100
$bid
 oid price size
1 b 95 100
2 k 95 71
Total volume: 171 232
Best prices: 95 105
Mid-price: 100
Spread: 10
Note that earlier messages are closer to the top of the book. This is due to price-time precedence,
according to which orders are executed:
• Best price first, but when two orders have the same price, the earlier one is executed first
We provide book.sort that respects price-time precedence. It relies on the fact that the order ids increase
as follows:
a < k < ab < ba
where < is indicating "comes before" in the message files.
book.sort <- function(book, sort_bid=T, sort_ask=T) {
 if (sort_ask && nrow(book$ask) >= 1) {
 book$ask <- book$ask[order(book$ask$price,
 nchar(book$ask$oid),
 book$ask$oid,
 decreasing=F),]
 row.names(book$ask) <- 1:nrow(book$ask)
 }
 if (sort_bid && nrow(book$bid) >= 1) {
 book$bid <- book$bid[order(-book$bid$price,
 nchar(book$bid$oid),
 book$bid$oid,
 decreasing=F),]
 row.names(book$bid) <- 1:nrow(book$bid)
 }
 book
}
book.init <- function() {
 book <- list(
 ask=data.frame(matrix(ncol=3, nrow=0)),
 bid=data.frame(matrix(ncol=3, nrow=0))
 )
 colnames(book$ask) <- c("oid", "price", "size")
 colnames(book$bid) <- c("oid", "price", "size")
 return(book)
}
This method will ensure that limit orders are sorted first by price and second by time of arrival (so that for two
orders at the same price, the older one is nearer the top of the book). You are encouraged to use
book.sort in your own implementations. In particular, by using it you can avoid having to find exactly where
to place an order in the book.
Hint on using logging in book.reconstruct
In common.R a logging option has been added to book.reconstruct:
book.reconstruct <- function(data, init=NULL, log=F) {
 if (is.null(init)) init <- book.init()
 if (nrow(data) == 0) return(init)
 book <- Reduce(
 function(b, i) {
 new_book <- book.handle(b, data[i,])
 if (log) {
 cat("Step", i, "nn")
 book.summarise(new_book, with_stats=F)
 cat("====================nn")
 }
 new_book
 },
 1:nrow(data), init,
 )
 book.sort(book)
}
If you want to use this for debugging, you can turn it on with the --log flag, e.g.:
Rscript main.R --log solution.R input/book_1.csv input/message_arc.txt
Then book.summarise is used to give intermediate output after each message is processed.
Hint on stringsAsFactors=FALSE
Notice the use of stringsAsFactors=FALSE in book.load (and data.load) in common.R.
book.load <- function(path) {
 df <- read.table(
 path, fill=NA, stringsAsFactors=FALSE, header=TRUE, sep=','
 )
 book.sort(list(
 ask=df[df$side == "S", c("oid", "price", "size")],
 bid=df[df$side == "B", c("oid", "price", "size")]
 ))
}
Its use here is not optional, it is necessary and what ensures that the oid columns of book$bid and
book$ask have type character.
It is crucial that you ensure that the types of your oid columns in your books remain character rather than
factors. The following examples will explain the use of stringsAsFactors and help you to achieve this.
First we introduce a function that will check the type of this column on different data frames that we will
construct:
check <- function(df) {
 checks <- c("is.character(df$oid)",
 "is.factor(df$oid)")
 for (check in checks)
 cat(sprintf("%20s: %5s", check, eval(parse(text=check))), 'n')
}
Now we use this function to explore different cases. First we look at reading in a csv file.
> check(read.csv('input/book_1.csv'))
is.character(df$oid): FALSE
 is.factor(df$oid): TRUE
> check(read.csv('input/book_1.csv', stringsAsFactors=FALSE))
is.character(df$oid): TRUE
 is.factor(df$oid): FALSE
What about creating a data.frame?
> check(data.frame(oid="a", price=1))
is.character(df$oid): FALSE
 is.factor(df$oid): TRUE
> check(data.frame(oid="a", price=1, stringsAsFactors=FALSE))
is.character(df$oid): TRUE
 is.factor(df$oid): FALSE
What about using rbind?
> empty_df <- data.frame(oid=character(0), price=numeric(0))
> non_empty_df <- data.frame(oid="a", price=1, stringsAsFactors=FALSE)
> check(rbind(empty_df, data.frame(oid="a", price=1)))
is.character(df$oid): FALSE
 is.factor(df$oid): TRUE
> check(rbind(empty_df, non_empty_df))
is.character(df$oid): TRUE
 is.factor(df$oid): FALSE
> check(rbind(non_empty_df, data.frame(oid="a", price=1)))
is.character(df$oid): TRUE
 is.factor(df$oid): FALSE
Note: when a data.frame becomes empty the type of the oid column is malleable and it is crucial to use
stringsAsFactors=FALSE. We see this issue if we rbind a list with a data.frame.
> check(rbind(empty_df, list(oid="a", price=1)))
is.character(df$oid): FALSE
 is.factor(df$oid): TRUE
> check(rbind(empty_df, list(oid="a", price=1), stringsAsFactors=FALSE))
is.character(df$oid): TRUE
 is.factor(df$oid): FALSE
> check(rbind(non_empty_df, list(oid="a", price=1)))
is.character(df$oid): TRUE
 is.factor(df$oid): FALSE
So it is crucial to use stringsAsFactors=FALSE when the data.frame is empty; I suggest to use it in
every case.
Extra problems for final 30%
Warning
The final 30% of marks are only available if CodeGrade gives you the full first 70% of marks. Please
only focus on the extra problems once you have achieved this.
For these final 30%, there are four functions that you are asked to implement. You can get marks for any
one of these independently. The marks available are as follows:
1. book.extra1 <- function(book,size) [6%]
2. book.extra2 <- function(book,size) [6%]
3. book.extra3 <- function(book) [6%]
4. book.extra4 <- function(book,k) [12%]
The functions are defined by a full specification, given below, but we intentionally do not give you explicit test
cases (you need to create them for yourself if you want) and you cannot find out your mark before the
deadline. We will also not offer detailed help on solving these parts, as they are meant to be more
challenging, with part of that challenge being to solve them on your own.
If you have achieved the full first 70%, then you can get extra marks for fully or partially correct
implementations of any of the 4 extra functions, independent of each other (e.g., you can complete
book.extra3 and not the other extra functions and still get marks).
The first three require you to compute an expectation of a discrete random variable. If you need a refresher,
go back to COMP111 Introduction to Artificial Intelligence. For our applicaton such an expectation is just the
average (since the probability distribution is uniform) over all the possible values of the random variable.
Assumption
For the extra tests, you can assume that bid book is not empty, so that the starting mid-price is only
NA if the ask book has no orders in it.
Extra problem 1
book.extra1 has two parameters, book (the order book), and size, which is an integer size between 1
and M, where M is the total volume in the ask book (you can assume that your function will only be tested on
such values of size).
The function should return the expected value of the midprice after execution of a buy limit order with size
size and price drawn uniformly at random from the set of prices in book$ask.
Extra problem 2
book.extra2 has exactly the same two parameters as book.extra1. The function should return the
expected value of the midprice after execution of a buy limit order with size size and price drawn uniformly
at random from the integer prices (the tick size is 1) between the best ask price and the highest ask price in
the book.
Hint: For the first 2 extra problems, if size is equal to M then the correct answer is NA.
Extra problem 3
book.extra3 only takes book as an argument. The function should return the expected value of the
midprice after execution of a buy market order with size s is executed, assuming that s is drawn uniformly at
random from the set {1,....,(M-1)}, where M is the total volume in the ask book.
Hint: For first 3 extra problems, one unified approach is to simulate the relevant orders using functions that
you implemented for book.reconstruct.
Extra problem 4
book.extra4 has two parameters, book (the order book), and k a non-negative number that will be
interpreted as a percentage, e.g., if k=0.4 then k corresponds to 0.4%.
The function should return: 0 if the ask book has no orders in it; otherwise the largest amount of buy volume
v such that a buy market order with size v causes the mid-price to increase by no more than k % (so an
order with size v+1 would either cause the midprice to increase by more than k % or would leave no asks left
in the book which means that the mid-price is NA).
Note: the return value should be an integer between 0 and the total ask volume in book.
Hint: For all 4 extra problems, to increase the chance that your implementations are correct, do one or two
examples where you compute the correct expectation by hand on and then check that your code produces
the correct answer.
Submission
Submission is via CodeGrade on Canvas. Remember to call the file that you submit "solution.R", as this is
the only thing that will be accepted by CodeGrade:
Using CodeGrade to improve your solution
For the first 70% of marks, after you submit the tests runs and then:
1. a provisional mark is visible;
2. any tests that you fail are visible on CodeGrade and can be used to help you improve your solution.
For example, I have edited the correct solution of book.best_prices to give the wrong answer 10% of the
time at random and submitted this as a test student. After waiting a short while for all the tests to run, one can
then see the result of the tests. Here they are for "Order book stats", for the first 4 functions:
Not only is book.best_prices failing some tests, but so is book.spread and book.midprice because
these happen to use book.best_prices in this implementation. Let's click on book.best_prices to
inspect the individual tests:
Note that if you find that the area of the interface that shows the test results is too small, it may be because
you are showing the rubric, which can be hidden (see the "Hide rubric" arrow in the bottom right of the
screenshot):
Let's zoom in on one of the failed tests for book.best_prices, which will allow us to see which inputs were
used:
In this case, book_2.csv was used; the first few tests in each category use the examples books that you
have been given, which makes it easy to investigate these failed tests.
When you have got all of the "Order book stats" functions correct and all the tests pass, it would look like this:
Let's do one more example, using book.add, where there is a message input as well as the book:
Finally, there is a second way that a test can fail. The above examples showed failures as "red crosses",
meaning that output was generated but that it didn't match the expected output. A second way that a test can
fail is with a "red exclamation mark":
There are two tabs, "Results" and "Output". As a default, CodeGrade starts on the results tab, which is used
in the examples above to see the details of tests that failed with a red cross:
To see any error messages that occured, which is relevant for tests that failed with a red exclamation mark,
switch to the output tab:
Finally, a comment on the post-deadline tests. You will get similar test output for the extra functions, provided
that you got the first 6 functions totally correct, but only after the deadline (this is completely intentional):
Tests
The first few tests in each category intentionally use book_1.csv, book_2.csv, and book_3.csv, so that
it is easy for you investigate if a test fails (since you have these csv files, and can use the empty
message file or create a simple message file yourself for testing).
Many of the tests use more complicated csv files, which are not available to you as csvs directly, but
you could create csvs if you wanted. That should not be necessary in most cases though since if your
code works on the example input/output files it should pass all the tests on CodeGrade.
Finally, please note that some tests are randomly generated. This is required to reduce the appeal of
hardcoding answers (if there was a small number of non-random tests, students could just hardcode
the expected answers rather than solve the general problem). This means that you may experience a
small amount of variance in the mark you see when you resubmit the same wrong code (correct code
will get full marks every time).
If you need help with the assignment we expect you to have submitted to CodeGrade. That way we can both
see how your code does on the tests, which will help us to help you, and we can enter comments directly on
the submitted source code, as in he following example:
請加QQ:99515681  郵箱:99515681@qq.com   WX:codehelp

標(biāo)簽:

掃一掃在手機打開當(dāng)前頁
  • 上一篇:AIST1110代做、Python編程設(shè)計代寫
  • 下一篇:COMP0197代寫、Python程序設(shè)計代做
  • 無相關(guān)信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風(fēng)景名勝區(qū)
    昆明西山國家級風(fēng)景名勝區(qū)
    昆明旅游索道攻略
    昆明旅游索道攻略
  • NBA直播 短信驗證碼平臺 幣安官網(wǎng)下載 歐冠直播 WPS下載

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網(wǎng) 版權(quán)所有
    ICP備06013414號-3 公安備 42010502001045

    主站蜘蛛池模板: 欧美成人综合 | 中文在线观看免费高清 | 91精产国品| 成人免费视频免费观看 | 在线免费观看黄 | 中文字幕亚洲无线码在线一区 | 黄色av软件 | 九月丁香婷婷 | 激情综合站 | 精品成人一区 | 中文字幕乱码中文字幕 | 日韩欧美精品一区 | 成人免费视频网站在线观看 | 91香蕉国产在线观看软件 | 亚洲天堂黄色 | 牛牛精品视频 | 色老头一区二区三区在线观看 | 久久99精品久久久久久 | aaa一级片 | 国产一及毛片 | 蜜桃av噜噜一区二区三区小说 | 日韩视频一区二区在线观看 | 特级av片 | 欧美亚洲国产视频 | 狠狠爱夜夜 | 69国产成人精品二区 | 在线精品国产 | 性毛片| 国产黄色av片 | 中文日本在线 | 国产日本视频 | 久久99久久精品久久久久久 | www操| 人人干97 | 免费一二区 | 高清视频一区二区三区 | 精品免费观看 | 亚洲精品一区二区三区99 | 91在线观看 | 最新中文字幕视频 | 欧美超碰在线观看 | 国产一级一级 | 成人精品| 久草免费在线视频观看 | av乱码| 裸体男女树林做爰 | av有码在线观看 | 天堂av网站 | 亚洲国产成人精品久久 | 国产精品主播视频 | 国产寡妇一级农村野外战 | 国产精品久久久久久久久久 | 日韩视频欧美视频 | 黄色小视频免费观看 | 91人人看| 一级淫片aaaaaaaahd | 国产精品1234| 日韩三级久久 | 久草精品在线观看 | 六月激情婷婷 | 国产精品一区一区三区 | 午夜影院免费在线观看 | 一级黄色大片免费看 | 91精品国产91 | 国产精品任我爽爆在线播放, | 91精品国产综合久久精品图片 | 亚洲最新av在线 | 日日狠狠久久偷偷四色综合免费 | 免费在线小视频 | 在线免费观看不卡av | 精品在线视频一区二区 | 国产精品99 | 一区二区三区四区av | av不卡免费 | 国产午夜精品一区二区 | 成人久久网 | 天天插天天狠天天透 | 狠狠躁日日躁夜夜躁2022麻豆 | 国产成人免费av | 天天透天天操 | 鲁一鲁在线 | 狠狠干中文字幕 | 深夜久久久 | 国产精品a成v人在线播放 | 男女视频免费观看 | 亚洲专区欧美 | 美女天天操 | 成人免费毛片入口 | 少妇高潮一区二区三区99小说 | 欧美 日韩 精品 | 久久免费偷拍视频 | 亚洲另类交 | 91av网址 | 国产欧美一区二区三区精品酒店 | 成人国产影院 | 天堂在线视频网站 | 中文字幕线人 | 亚洲精品ww久久久久久p站 | 一级黄一级色手机版 | 成人高清在线观看 | 国产性色av | 国产日产亚洲精品 | 人人干人人爽 | 日韩视频免费 | 国产精品成人3p一区二区三区 | 国产第一福利影院 | 国产丝袜一区二区三区 | 欧美一区二区三区激情啪啪 | 一级黄色网址 | 波多野结衣三级视频 | 成人1区 | 天堂在线观看中文字幕 | 在线观看欧美 | 天天干天天天 | 亚洲第一视频网站 | 五月婷婷六月色 | 亚洲视频1 | 久久视频免费观看 | 台湾性生生活1 | 久久伊人久久 | 日韩午夜小视频 | 91禁在线观看 | 国产精品99久久久久 | 一级黄色片免费看 | 亚洲男女在线 | 亚洲a人| 在线一级视频 | 亚洲天堂中文字幕 | 91视频看片 | 伊人久久精品视频 | 国产又粗又黄又爽又硬的视频 | 黄色网址大全免费 | 亚洲婷婷网 | 亚洲精品久久久久久久蜜桃 | 久久精品国产免费看久久精品 | 久久久精品久久久久 | 成人免费性生活视频 | 一区二区三区福利视频 | 91最新视频 | 久艹视频在线 | 亚洲永久免费 | 九九色综合 | 久草福利在线观看 | 久久久久久片 | 黄色香蕉网站 | 五月天国产精品 | 黑人一区二区三区 | 欧洲精品码一区二区三区免费看 | 久久大香伊蕉在人线观看热2 | 中文字幕男人天堂 | 99插插| av免费观看久久 | 综合网在线视频 | 国产又黄又粗又猛又爽 | 一级久久| 欧美综合激情 | 天堂资源站 | 中文无码日韩欧 | 欧美日韩视频在线 | 欧美 中文字幕 | 国产五月| 欧美你懂得| 日韩激情第一页 | 免费看成人毛片 | 1024国产在线 | 色婷婷国产精品综合在线观看 | av福利在线 | 亚洲香蕉在线观看 | 国产欧美一区二区三区精华液好吗 | 精品亚洲精品 | 久久免费在线视频 | 欧美影音| 在线小视频你懂的 | 91精品国产91久久久 | 免费成人av | 国产精品国产三级国产a | 亚洲精品一区二区三 | 狠狠干狠狠爱 | 性活交片大全免费看 | 日韩视频中文字幕 | 国产又粗又猛又爽又黄的 | 蜜桃av一区二区三区 | 午夜少妇av | 日韩欧美高清视频 | 青青草免费av | 一级特黄aaa | 免费看黄色小视频 | 亚洲第一区av | 九九九九九精品 | 尤物精品在线 | 亚洲网站在线播放 | 欧美一区二区三区的 | 性欧美videos另类极品小说 | 亚欧洲精品在线视频免费观看 | 久久白虎 | 国产又黄又粗又爽 | 日韩福利在线观看 | 久久久久久久久久一区二区三区 | 亚洲天堂视频在线观看 | 国产理论在线 | 制服师生中文字幕 | 欧美激情动态图 | 久热最新 | 奇米狠狠操| 午夜精品久久久久久久蜜桃 | 91se在线 | 久久国产偷 | 亚洲影院在线 | 视频一区日韩 | 国产欧美二区 | 人人射av| 久久白虎 | 毛片网 | 97超碰人人| 国产网站精品 | 日韩簧片| 日本精品在线视频 | 在线观看免费毛片 | 欧美在线免费 | 国产超薄肉色丝袜足j | 性淫bbwbbwbbw| 2021久久 | 亚洲香蕉精品 | 日韩在线视频免费观看 | 2019中文字幕在线观看 | 欧美成人午夜 | 欧美日韩国产精品一区二区三区 | 精产国品一区二区三区 | 亚洲香蕉一区 | 黄色网址你懂的 | 国产一级片在线 | 在线国产中文字幕 | 超碰99热| 99在线视频免费观看 | 可以免费在线观看的av | 国产精品www | 国产精品久久久久久妇女 | 国产又黄视频 | 美日韩一区 | 黄色录像a级片 | 国产一区二区在线视频聊天 | 午夜一级视频 | 日韩在线视频免费播放 | 黄网站在线观看视频 | 九九看片 | 欧美大尺度床戏做爰 | 免费激情网 | 欧美一区二区三区啪啪 | 最近中文字幕av | 亚洲影音先锋 | 一区二区三区国产视频 | 一级啪啪片 | 97精品欧美一区二区三区 | 国产免费一区二区 | 一级免费黄色 | 天堂影视av | 在线观看中文字幕第一页 | 久操视频在线播放 | 亚洲暴爽| 亚洲第一页中文字幕 | 国产婷婷色综合av蜜臀av | 久久国产精品亚洲 | 99re免费视频 | 久久99深爱久久99精品 | 91av视频播放 | 免费成人结看片 | 精品久久成人 | 亚洲网友自拍 | 黄色一及大片 | 黄色日韩在线 | 国内精品视频在线 | 色哟哟在线播放 | 波多野结衣一二三区 | 日韩在线无 | 日韩天堂在线观看 | 91丨国产丨白丝 | 国产精品国产三级国产aⅴ无密码 | 六月丁香色婷婷 | 免费久久| 欧美色图在线视频 | 国色天香一卡2卡三卡4卡乱码 | 成人精品免费视频 | 91精品导航| 成人免费一区二区三区 | 亚洲国产精品久久久 | 女人18毛片水真多18精品 | 青娱乐在线免费视频 | 裸体黄色片 | 亚洲字幕成人中文在线观看 | 黄色大片a级| 91视频地址 | 国产精品二区一区二区aⅴ污介绍 | 97偷拍视频 | 国产精品久久久久久久久久免费 | 国产精品久久人人做人人爽 | 日本高清在线观看 | 亚色视频在线观看 | 夜夜爽夜夜 | 日日操日日爽 | 欧美超碰在线 | 97超在线| 人人爽人人干 | 在线国产三级 | 免费av免费看 | 99久久久国产精品 | 成人a免费看 | 亚洲人丰满奶水 | 黄色片亚洲 | 在线xxxxx | 超碰97人人干 | 国产做受高潮动漫 | 久色成人 | 久久精品视频9 | 91黄色免费网站 | 在线播放91| 亚洲成人精品 | 国产自产在线 | 91手机在线| 色在线综合 | 日韩中文字幕网 | 中日韩中文字幕 | 手机看片一区二区 | 97超碰在线播放 | 综合色区 | 久久久夜色精品 | 中文字幕在线观看你懂的 | 香蕉视频一区二区 | 国产精品久久久久精囗交 | 欧美婷婷| 韩国激情呻吟揉捏胸视频 | av每日更新在线观看 | 狠狠做| 国产在线一级片 | 性久久久久久 | 国产尤物在线 | 日本免费中文字幕 | 四虎影视永久免费 | 中文在线字幕免 | 亚洲 日本 欧美 中文幕 | 欧美第一页草草影院 | 欧美日韩中文字幕一区二区三区 | 国产黄色片久久 | 青青操原 | jizz处女 | 91调教打屁股xxxx网站 | 一区国产精品 | 91视频综合| 97caocao| 夜夜天天操 | 在线免费观看视频 | 在线一二区 | 亚洲免费视频网 | 五月亚洲综合 | 亚洲欧美经典 | 91精品国产高清一区二区三区蜜臀 | 超碰碰碰 | 亚洲人人夜夜澡人人爽 | 免费69视频| 丁香综合激情 | 免费黄av| xx色综合| 日韩天天干 | 一区二区三区免费观看视频 | 亚洲品质自拍视频 | av免费观看网址 | 国外成人性视频免费 | 日本网站免费观看 | 97se综合| 亚洲综合成人专区片 | 爱爱福利社 | 成人精品视频一区二区三区尤物 | 亚洲精品一二三四 | 国产a级片视频 | 亚洲成熟少妇视频在线观看 | 欧美系列第一页 | 欧美在线看 | 精品国产三级 | 欧美成人高清在线 | 国产网红主播三级精品视频 | 天天操天天操天天干 | av黄色在线播放 | 国产女同在线观看 | 日韩免费视频 | 中文字幕在线观看视频网站 | 亚洲精品久久久久 | 中文字幕乱码一区 | 真人毛毛片 | 香蕉av一区二区 | 中文字字幕码一二三区的应用场景 | 午夜国产精品视频 | 成人精品视频一区二区三区尤物 | 国产网站91 | 中文字幕系列 | 久久久久国产精品一区二区 | 伊人中文网 | 亚洲精品久久久蜜桃 | 国产一区二区三区高清 | 欧美日本综合 | 91久久精品一区二区 | 亚洲资源站 | 久久99操 | 国产女主播视频一区二区三区 | 蜜桃视频一区二区 | 日韩中文字幕免费 | 亚洲永久精品国产 | 国产精品婷婷午夜在线观看 | 色婷在线| 4438x亚洲最大 | 亚洲精品乱码久久久久久蜜桃动漫 | 国产毛片一区 | 亚洲手机在线观看 | 欧美日本综合 | 国产69久久精品成人看 | 久艹在线观看 | 久久国产精品影视 | 欧美日韩中文字幕在线观看 | 日韩av在线网址 | 日本在线视频不卡 | 亚洲喷潮| 在线观看亚洲免费视频 | 在线艹 | 精品久久9999 | wwwwxxxxx日本 | 波多野结衣中文字幕一区二区 | 亚洲成人av在线播放 | 国产不卡视频在线 | 国产精品久久久久久久久久99 | 亚洲情人网 | 奇米色播 | 92看片淫黄大片看国产片 | 亚洲一区二区视频在线播放 | 亚洲一区二区91 | 亚洲免费av在线 | 超碰三级 | 噜噜啪啪 | 日韩精品成人免费观看视频 | 超碰在线综合 | 免费av一区 | 9久久精品| 久色91 | 久久精品999 | 最近中文字幕在线播放中 | 嫩草影院一区二区三区 | 亚洲 欧美 日韩 在线 | 亚洲视频在线观看网站 | 自拍偷拍2019 | 亚洲天天 | h片大全| 日韩男人的天堂 | 欧美一级一区 | 久久婷婷国产综合尤物精品 | 蜜桃久久久aaaa成人网一区 | 狠狠干2024| 91亚洲一区二区三区 | 国产成人影视 | 欧美精品二区三区四区免费看视频 | 亚洲综合性 | 日本久操 | 国产精品嫩草影院桃色 | 野花社区视频在线观看 | 国产一国产一级毛片视频 | 青青艹在线观看 | 天天综合视频 | 亚洲精品mv免费网站 | 久久福利影院 | 久久精品二区 | 96免费视频 | 夜夜夜夜爽 | 妖精视频一区二区三区 | 免费国产网站 | 性欧美videos另类极品小说 | 中日韩无砖码一线二线 | 国产18照片色桃 | 意大利三级全黄裸体 | 亚洲人人网 | 日韩福利视频导航 | 亚洲天堂aa | 乱色专区 | 国产欧美一区二区三区在线看蜜臂 | 97视频网站 | 国产精品黄色 | 亚洲va久久久噜噜噜久久 | 在线一区二区视频 | 免费在线| 宅男噜噜噜666 | 精品国产99久久久久久宅男i | 亚洲黄色精品视频 | 欧美精品在线免费观看 | 日韩精品一卡二卡 | 国产激情在线 | 国产亚洲一区精品 | 国产a级片视频 | 综合成人在线 | 成人午夜淫片免费观看 | 少妇黄色片 | 日韩视频免费在线观看 | 成人毛片网站 | 天天干夜操 | 亚洲网站视频 | 亚洲黄色免费网站 | 久久精久久 | 国产精品免费看 | 欧美激情视频一区二区三区在线播放 | 色婷婷丁香| 爱爱免费网址 | av在线亚洲天堂 | 天天干天天噜 | 天天操夜夜撸 | 成人性生活免费视频 | 国产老头和老头xxxx× | 金瓶狂野欧美性猛交xxxx | www爱爱 | 国产哺乳奶水91在线播放 | 午夜成人影视 | 国产精品国产三级国产专区52 | 国产女主播一区二区三区 | 超碰2023| 亚洲我射| 91免费观看入口 | 91传媒理伦片在线观看 | 亚洲精品在线免费 | 国产欧美日韩在线播放不了吗 | 国产午夜性春猛交ⅹxxx | 午夜视频在线观看网站 | 综合成人在线 | www亚洲一区 | 五月婷婷深深爱 | 亚洲精品乱码久久 | 亚洲永久精品一区 | 国产一二视频 | 国产欧美日韩在线播放 | 欧美天天影院 | 丰满少妇乱子伦精品看片 | 日韩在线视频观看免费 | bb日韩美女预防毛片视频 | 欧美色精品| av免费观看在线 | 日本一区二区三区精品视频 | 非洲黑寡妇性猛交视频 | 97视频免费在线 | 性色浪潮av | 一区在线免费 | 在线一二区 | 国产精品无码久久av | 午夜免费观看 | 玉足女爽爽91 | 高清一区二区 | 香蕉视频网站在线 | 一极黄色大片 | 国产精品a成v人在线播放 | 国产精品嫩草影院精东 | 欧美在线免费观看 | 日韩videos | 欧美成人精品欧美一级 | 精品久久久久久亚洲综合网站 | 91极品在线 | 曰韩av| 亚洲精品女 | 国产网址在线 | 成人av播放 | 在线观看中文字幕视频 | 波多野结衣视频在线看 | 国产成人精品在线观看 | 人人干干 | 日韩欧美在线视频观看 | 男女视频在线免费观看 | 久久亚洲国产 | 成人在线免费看片 | 韩国av一区二区三区 | www视频在线观看网站 | 国产另类专区 | 国产一区二区三区91 | 亚洲免费a | 成人免费看毛片 | 欧美1页| 夜夜撸| 97人人澡人人爽人人模亚洲 | www日本高清视频 | 极品91 | 女人洗澡一级特黄毛片 | 成人午夜精品久久久久久久网站 | 艳妇荡乳豪妇荡乳av精东 | 九九热只有精品 | 亚洲日本欧美日韩高观看 | 国产精品99久久久久久一区二区 | 国产精品黄色在线观看 | 91精品推荐 | 国内精品少妇在线播放98 | 成人精品国产 | 看黄色一级大片 | 亚洲视频在线免费观看 | 五月婷婷在线视频 | 日韩欧美一区二区三区在线 | 国产精品久久久久久亚洲调教 | 毛茸茸日本熟妇高潮 | 美国av导航 | 日韩欧美中文字幕一区 | 久久久久久久久99精品 | 九色综合网 | 亚洲精品一二三区久久伦理中文 | 欧美成人综合视频 | 精品亚洲在线 | 中国在线观看免费视频 | 久久久久夜色精品国产老牛91 | 在线日韩精品视频 | 成人在线视频网 | 久久免费少妇做爰 | 亚洲成人第一页 | 黄色国产| av国产在线观看 | 999成人网| 黄色特级大片 | av免费天堂 | 免费在线看a| 亚洲专区中文字幕 | 午夜视频在线观看一区二区 | 亚洲视频一区二区在线观看 | 亚洲图片在线观看 | 一级片手机在线观看 | 在线观看视频国产 | 人人射人人爱 | 国产黄色av网站 | 国产91免费在线观看 | 久久精品视频免费看 | 精品视频免费观看 | 欧美小视频在线 | 国产欧美视频在线观看 | 国产在线资源 | 中文字幕在线免费 | 亚洲欧美国产毛片在线 | 五月激情啪啪 | 欧美另类一区 | 欧美黑人做爰爽爽爽 | 五月天啪啪 | 在线色网| 九九精品九九 | 久久免费观看视频 | 男女啪啪国产 | 精品午夜一区二区三区在线观看 | 天堂在线视频免费观看 | 韩日av在线播放 | 日日天天| fc2成人免费视频 | 91久久精品一区二区 | av色图 | 男女激情免费网站 | 久久三区| 欧洲做受高潮免费看 | 在线观看欧美日韩 | 亚州激情视频 | 热久久91 | www.日批 | 国产高清精品在线 | 黄色污小说 | 欧美高清精品 | 免费黄网站在线观看 | 国产在线国偷精品产拍 | 久久精品一二区 | 91视频一区 | 亚洲一区在线视频 | 欧美日韩aa| 伊人三级| 国产精品资源在线 | 精品卡一卡二卡3卡高清乱码 | 色播综合网 | 热99精品| 久久久久久激情 | 伊人精品影院 | 欧美另类在线观看 | 在线毛片片免费观看 | 一本加勒比hezyo综合 | 五月婷婷六月色 | 亚洲综合首页 | 美女一区二区三区四区 | 中文字幕精品一区二区精品 | 男人的天堂毛片 | 国内精品久久久久久久久久 | 人人上人人干 | 少妇视频一区 | 国产一级在线看 | 91成人国产综合久久精品 | 亚洲 欧美 国产 制服 动漫 | 日本综合视频 | 亚洲一区久久久 | 91久久网| 91在线精品一区二区 | 国产18在线观看 | 亚洲91影院 | 99热激情| 黄色一级片视频 | 国产冒白浆 | 亚洲一区国产精品 | 啪啪免费视频网站 | 中文一二区 | 国产三级在线观看 | 国产高潮在线观看 | 天天操天天拍 | 国产精品成人免费一区久久羞羞 | 99久久国产综合精品女不卡 | 亚洲人在线观看 | 国产一区二区久久 | 欧美a级免费 | 欧美大尺度床戏做爰 | 中文字幕一区二区三区在线乱码 | 国产在线一级片 | 91在线一区二区 | 亚洲日本免费 | 五月天久久婷婷 | 性猛╳xxx乱大交 | 国产18照片色桃 | 羞羞色院91蜜桃 | 91亚洲精品一区二区乱码 | 91色站 | 337p日本大胆噜噜噜噜 | 夜夜爽狠狠澡97欧美精品 | 夜夜夜夜bbbbbb欧美 | 国产精品久久久久久久久久久久午夜片 | 亚洲五码在线 | 久99热| 日本美女动态图 | 欧美日韩中文字幕在线 | www.九九热| 精品日韩一区二区三区免费视频 | 六月丁香色婷婷 | 亚洲精品国产精品国自产网站按摩 | 青青草手机视频在线观看 | 国产精品免费一区二区三区 | 国产精品久久久久久久久久免费 | 最新色网址 | 亚洲区视频在线 | 伊人久久大香线蕉综合网站 | www.成人av| 国内精品久久久久久久影视麻生 | 国产精品成人一区二区 | 天天综合网入口 | 久久艹在线观看 | 性色网站 | 亚洲天堂aa | 在线视频在线 | 日韩精品一二三 | 亚洲视频欧美视频 | 91最新视频 | 奇米四色网 | 俄罗斯一级片 | 成人精品视频一区二区三区尤物 | 成人va在线| 男女激情在线观看 | 亚洲综合色一区 | 6—12呦国产精品 | 男女激情在线观看 | 国产91精品看黄网站在线观看 | 淫综合网 | 女人十八岁毛片 | 亚洲女成人图区 | 欧美成人精品欧美一级乱黄 | 日韩经典三级 | 国产精华7777777 | 在线黄色免费网站 | 一区二区三区欧美在线 | 韩国三级hd中文字幕的背景音乐 | www.97av.com| 亚洲精品久久7777777 | 天天干天天操天天舔 | 午夜一二区 | jizz处女| 国产视频网站在线观看 | 成年人观看视频 | 日韩成人在线免费观看 | 成人欧美一区二区 | 国产黄色在线观看 | 中国黄色一级片 | 久久久777| 综合久久网 | 欧美在线网址 | 亚洲高清免费 | 青青青国产在线 | 男女叼嘿视频 | 不卡影院av| 麻豆高清免费国产一区 | 在线亚洲一区二区 | 久久99深爱久久99精品 | 久久久久久久久久久久一区二区 | 福利精品在线观看 | 欧美高清视频一区二区三区 | 国产高潮在线观看 | 操操插插 | 婷婷丁香激情五月 | 欧美激情精品久久 | 精品九九在线 | 波多野结衣毛片 | 男人都懂的网址 | 丁香色网 | 偷拍视频一区 | 国产精品一区三区 | 免费亚洲精品 | 久久久久中文字幕 | 国产精品50页 | 韩国一级一片高清免费看 | 黄色网址av | 毛片毛片毛片毛片 | 视频网站在线观看18 | 69日影院 | 国产精品入口 | 日韩在线观看视频网站 | avwww.| 欧美亚洲日本 | 国产色影院 | 欧美不卡影院 | 久久久久久久网 | 欧美第九页| 午夜免费播放观看在线视频 | 男女互操在线观看 | 欧美人狂配大交3d | 亚洲欧美一区在线 | 久久久久亚洲av毛片大全 | 三级在线视频 | 在线免费小视频 | 毛片一级片 | 亚洲精视频 | 国产精品欧美一区二区 | 欧美69av| 国产成人三级在线播放 | 波多野结衣伦理 | 91成人在线观看喷潮 | 欧美综合自拍 | 日韩欧美精品中文字幕 | 黄色av大全| 亚洲精品日日夜夜 | 国产又粗又猛视频 | 最新国产在线拍揄自揄视频 | 欧美com | 国产乱码精品 | 福利社av| 亚洲精品一二 | 国产成人精品久久二区二区 | 直接看毛片 | av在线网址观看 | 中文字幕a级片 | 久草福利在线观看 | 久久久黄色大片 | 免费看黄在线 | 欧美大片aaa | 亚洲免费网站观看视频 | 男人插入女人下面的视频 | 精品久久久久一区二区 | 国产99久久久久久免费看 | 精品久久综合1区2区3区激情 | 免费在线观看av网址 | 一区二区三区不卡在线观看 | 亚洲国产精品精华液网站 | 亚洲91视频| 欧美成人精品在线 | 色综合图片区 | 国产一国产二 | 免费欧美视频 | 亚洲成人av免费在线观看 | 最新午夜综合福利视频 | 久久久久网站 | 亚洲性久久 | 成年人在线播放 | 综合色99| 亚洲依依| 国产精品蜜臀 | 亚洲激情福利 | 法国性按摩xxx | 国内视频自拍 | 夜夜嗨av一区二区三区四季av | 中国二级毛片 | 久久精品成人av | 久久奇米 | 午夜毛片在线 | 深夜福利免费在线观看 | 99色 | 色视频在线观看免费 | 国产69精品久久 | 狠狠干av| 久草资源在线 | 成人国产精品免费观看视频 | 激情久久综合 | 欧美日韩国产一区二区 | 亚洲国产播放 | www.九九热| 国产在线精品一区二区三区不卡 | 91尤物在线 | 亚洲国产二区 | 亚洲激情 | 一级黄色片免费观看 | av手机在线免费观看 | 久久久午夜精品福利内容 | 在线无遮挡 | 狠狠爱夜夜| 亚洲激情四射 | 久久久精品毛片 | 亚洲精品日韩欧美 | 两性动态视频 | 午夜视频免费在线观看 | 最新中文字幕在线视频 | 午夜影视剧场 | 一本色道久久加勒比精品 | 99久久一区 | 国产午夜性春猛交ⅹxxx | 国产xxxx裸体肉体大胆147 | 国产成人aa | 欧美日韩成人在线观看 | 91毛片在线观看 | 成人片免费视频 | 成年人黄色 | 天天操夜夜干 | 北条麻妃av在线播放 | 黄色不卡| se欧美| 亚洲九九爱 | 午夜精品久久久久久久久久蜜桃 | 99综合网| 国产精品99久久久久久人免费 | 日本三级大片 | 91精品日韩 | 一级黄色小视频 | 国产免费aa | 天天色天天 | 国产91精品高潮白浆喷水 | 国产日韩视频一区 | 久久伊人草 | 国产一卡二卡在线 | 九色视频在线播放 | aaa国产精品| 欧美日韩在线视频免费播放 | 黄色小说在线视频 | 精品91久久久 | jlzzjlzz亚洲日本少妇 | 国产精品视频播放 | 婷婷深爱五月 | 亚洲综合一区二区 | 国产黄av| 向日葵bp色板视频 | 亚洲丁香婷婷久久一区二区 | 日日噜噜噜| 91麻豆网| 中文字幕99 | 国产免费一区二区三区免费视频 | 亚洲在线一区二区三区 | 国产 日韩 欧美 精品 | 久色| 欧美成人精品二区三区99精品 | 韩国三级hd中文字幕有哪些 | 国产玖玖 | 青娱乐av | 亚洲黄色小视频 | av片在线观看免费 | 一区二区视频在线 | 国产网站免费观看 | 成人综合色站 | 高潮av| 一级啪啪片 | 国内视频自拍 | 在线麻豆| 神马久久久久久久久久 | 国产第20页 | 久久奇米 | 免费播放毛片精品视频 | 精品在线一区二区三区 | 怡红院毛片 | 欧美巨大乳 | 久久久久香蕉 | 在线观看国产精品视频 | 欧美成人一区二免费视频软件 | 欧美一区二区三区啪啪 | 日韩美一级片 | 亚洲午夜久久久久久久久久久 | 中文字幕av久久爽一区 | 国产又爽又黄的视频 | 国产区免费 | 亚洲激情综合网 | av播放网站 | 都市激情校园春色亚洲 | 久久人人草 | 天天操人人爽 | 欧美日韩在线观看免费 | 欧美一区二区三区影院 | 国产精品福利在线 | 日韩一区二区视频 | 亚洲逼院 | av基地 | 狠狠操婷婷| av+在线播放在线播放 | 韩国性猛交╳xxx乱大交 | 五月婷婷激情综合网 | 午夜激情在线 | 日日摸日日添日日躁av | youjizz.com中国| 午夜诱惑痒痒网 | 国产美女无遮挡永久免费 | 激情网络 | 成人免费视频国产 | 在线中文字幕网站 | 一本一道av| 国产真实乱人偷精品视频 | 丁香六月在线 | 亚洲精品18|